开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2429|回复: 10
收起左侧

[闲聊] E语言源码————讨论__可以随便讨论E代码

[复制链接]
结帖率:33% (3/9)
发表于 2012-7-8 01:35:55 | 显示全部楼层 |阅读模式   四川省成都市
本帖最后由 玲心韩雪 于 2012-7-8 01:37 编辑

编辑框右键禁止
.版本 2
.局部变量 gHW
gHW = 编辑框1.取窗口句柄 ()

lpPrevWndProc = SetWindowLong (gHW, -4, &WindowProc)

.子程序 WindowProc, 整数型
.参数 hw
.参数 uMsg
.参数 wParam
.参数 lParam

.如果真 (uMsg = 123 或 uMsg = 769)  ' 是否为WM_CONTEXTMENU或复制消息
    返回 (0)  ' 拦截
.如果真结束
返回 (CallWindowProc (lpPrevWndProc, hw, uMsg, wParam, lParam))

.版本 2

.DLL命令 SetWindowLong, 整数型, , "SetWindowLongA"
    .参数 hwnd
    .参数 nIndex
    .参数 dwNewLong, 子程序指针

.DLL命令 CallWindowProc, 整数型, , "CallWindowProcA"
    .参数 lpPrevWndFunc
    .参数 hwnd
    .参数 Msg
    .参数 wParam
    .参数 lParam

评分

参与人数 2精币 +3 收起 理由
微凉 + 1 说实话你这样发代码不友好
Cand + 2 你要逆天。。。

查看全部评分

结帖率:33% (3/9)
 楼主| 发表于 2012-7-8 01:40:03 | 显示全部楼层   四川省成都市
本帖最后由 玲心韩雪 于 2012-7-8 01:41 编辑

COM_事件操作_这样才是编程3__________ 佩戴E语言操作源码
http://115.com/file/anr836p9#
串口COM通讯(C语言)程序.rar
#include <reg51.h>
#include <intrins.h>
unsigned char key_s, key_v, tmp,tmp2,tmp3;
void send_str();
void delayms(unsigned int ms);
void send_char(unsigned char txd);
  
main()
{
        TMOD = 0x20;                        // 定时器1工作于8位自动重载模式, 用于产生波特率
        TH1 = 0xFD;                                // 波特率9600
        TL1 = 0xFD;
        
        SCON = 0x50;                        // 设定串行口工作方式
        PCON &= 0xef;                        // 波特率不倍增
               
        TR1 = 1;                                // 启动定时器1
        IE = 0x0;                                // 禁止任何中断
        while(1)
        {

        if(RI)                                                // 是否有数据到来
                {
                RI = 0;
                tmp = SBUF;        

if (tmp==224){
                        send_str();           //将四个p口发给串口
                        }        else {


if (tmp==225 || tmp==226 || tmp==227 || tmp==228 )
                        {
                 tmp2=tmp;
                        }  else {

                                                                    if (tmp2==225){
                                                        P0=tmp;        
                                                        //send_str();
                                                                }

                                        if (tmp2==226){
                                                                P1=tmp;        
                                                        //        send_str();
                                                                }
                                        if ( tmp2==227){
                                                                P2=tmp;        
                                                        //        send_str();
                                                                }
                                        if (tmp2==228){
                                                                P3=tmp;        
                                                                }



                        }







                          }


                        
                        

                                        }
                 delayms(25000);//延时1毫秒
                }
               

                                
        }






void send_str()
// 传送字串
{
                SBUF =224;
                while(!TI);
                TI = 0;        
        
                tmp3=P0;
                SBUF = tmp3;
                while(!TI);
                TI = 0;

                tmp3=P1;
                SBUF = tmp3;
                while(!TI);
                TI = 0;

                tmp3=P2;
                SBUF = tmp3;
                while(!TI);
                TI = 0;

                tmp3=P3;
                SBUF = tmp3;
                while(!TI);
                TI = 0;

                SBUF = 225;
                while(!TI);
                TI = 0;


}


void delayms(unsigned int i)//汇编后是DJNZ指令用2微秒        (双机器周期) 参数在65535以下
{
                i=i/2;
      while(--i);
}
回复 支持 反对

使用道具 举报

结帖率:33% (3/9)
 楼主| 发表于 2012-7-8 01:45:25 | 显示全部楼层   四川省成都市
呵呵我曾经说过我可以用 核心支持库 不创建窗口 直接写个窗口出来对吧,,,现在就来晒晒你们
http://115.com/file/bevn5rrn#
纯API窗口精简.e

.版本 2

.子程序 窗口过程函数, 整数型, , 用来处理消息,它就是窗口的回调函数,也叫窗口过程,我们在消息循环中调用DispatchMessage,而DispatchMessage在自己内部回过来调用窗口过程。
.参数 hWnd, 整数型, , 窗口句柄
.参数 uMsg, 整数型, , 消息类型
.参数 wParam, 整数型, , 消息参数一
.参数 lParam, 整数型, , 消息参数二
.局部变量 _设备句柄, 整数型, , , GDI绘图所用设备句柄
.局部变量 _绘图信息, PAINTSTRUCT, , , BeginPaint返回所保存数据
.局部变量 _区域, RECT, , , 一个DrawText的区域

.判断开始 (uMsg = #WM_PAINT)
    _设备句柄 = BeginPaint (窗口句柄, _绘图信息)
    GetClientRect (hWnd, _区域)
    DrawText (_设备句柄, “易语言,同样的精彩!”, -1, _区域, 位或 (#DT_CENTER, #DT_VCENTER, #DT_SINGLELINE))
    EndPaint (hWnd, _绘图信息)
.判断 (uMsg = #WM_CLOSE)
    DestroyWindow (窗口句柄)
    PostQuitMessage (0)
.默认
    ' 本源码来自易语言资源网(www.5A5X.com)
.判断结束
返回 (DefWindowProc (hWnd, uMsg, wParam, lParam))
回复 支持 反对

使用道具 举报

结帖率:33% (3/9)
 楼主| 发表于 2012-7-8 01:46:31 | 显示全部楼层   四川省成都市
C语言版本
#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WndProc(
        HWND hwnd,
        UINT uMsg,
        WPARAM wParam,
        LPARAM lParam
);

int WINAPI WinMain(
        HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR lpCmdLine,
        int nCmdShow
)
{
        //设计一个窗口类
        WNDCLASS wndcls;
        wndcls.style=CS_HREDRAW | CS_VREDRAW;
        wndcls.lpfnWndProc=WndProc;
        wndcls.cbClsExtra=0;
        wndcls.cbWndExtra=0;
        wndcls.hInstance=hInstance;
        wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
        wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
        wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
        wndcls.lpszMenuName=NULL;
        wndcls.lpszClassName="111";

        RegisterClass(&wndcls);

        HWND hwnd;
        hwnd=CreateWindow("111","hello",
                WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n
        ShowWindow(hwnd,SW_SHOWNORMAL);
        UpdateWindow(hwnd);

        MSG msg;
        while(GetMessage(&msg,NULL,0,0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
        return msg.wParam;
}

LRESULT CALLBACK WndProc(
        HWND hwnd,
        UINT uMsg,
        WPARAM wParam,
        LPARAM lParam
)
{
        switch(uMsg)
        {
        case WM_CHAR:
                char szChar[20];
                sprintf(szChar,"char code is %d",wParam);
                MessageBox(hwnd,szChar,"char",0);
                break;
        case WM_LBUTTONDOWN:
                MessageBox(hwnd,"mouse clicked","message",0);
                HDC hdc;
                hdc=GetDC(hwnd);
                TextOut(hdc,0,50,"VC++程序设计", strlen("VC++程序设计"));
                ReleaseDC(hwnd,hdc);
                break;
        case WM_PAINT:
                HDC hDC;
                PAINTSTRUCT ps;
                hDC=BeginPaint(hwnd,&ps);
                TextOut(hDC,0,0,"你好!",strlen("你好!"));
                EndPaint(hwnd,&ps);
                break;
        case WM_CLOSE:
                if(IDYES==MessageBox(hwnd,"是否真的结束?","message",MB_YESNO))
                {
                        DestroyWindow(hwnd);
                }
                break;
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        default:
                return DefWindowProc(hwnd,uMsg,wParam,lParam);
        }
        return 0;
}

点评

#include<windows.h> int main() { MessageBox(NULL,"Hello World!","C图形程序",MB_OK); return 0; }   四川省成都市  发表于 2012-7-8 01:48
回复 支持 反对

使用道具 举报

结帖率:33% (3/9)
 楼主| 发表于 2012-7-8 01:52:26 | 显示全部楼层   四川省成都市
控件透明
.版本 2

.DLL命令 窗口_置信息_DLL, 整数型, , "SetWindowLongA", , 值
    .参数 hwnd
    .参数 nIndex
    .参数 dwNewLong

.DLL命令 窗口_置透明度_DLL, 整数型, , "SetLayeredWindowAttributes"
    .参数 hwnd
    .参数 crkey
    .参数 alpha, 字节型
    .参数 dwflags

.DLL命令 窗口_取信息_DLL, 整数型, "user32", "GetWindowLongA"
    .参数 hwnd
    .参数 nIndex
.版本 2
.版本 2

.程序集 窗口程序集1

.子程序 __启动窗口_创建完毕

窗口_透明_去色 (取窗口句柄 (), #芙红)

.子程序 窗口_透明_去色, 整数型, 公开,
.参数 窗口句柄
.参数 透明色
.局部变量 風格

風格 = 窗口_取信息_DLL (窗口句柄, -20)
風格 = 位或 (風格, 524288)
窗口_置信息_DLL (窗口句柄, -20, 風格)
窗口_置透明度_DLL (窗口句柄, 透明色, 0, 1)
返回 (透明色)

回复 支持 反对

使用道具 举报

结帖率:33% (3/9)
 楼主| 发表于 2012-7-8 01:56:07 | 显示全部楼层   四川省成都市
.版本 2

.子程序 透明窗体, , 公开, 指定本窗口透明效果。很遗憾!不支持98
.参数 窗口句柄, 整数型, , 可用 取窗口句柄() 获得。
.参数 透明值, 整数型, , 0-255
.局部变量 风格, 整数型

风格 = 取窗口风格 (窗口句柄, -20)
风格 = 位或 (风格, 524288)
置窗口风格 (窗口句柄, -20, 风格)
设置透明 (窗口句柄, 0, 透明值, 2)

.版本 2

.DLL命令 设置透明, 整数型, , "SetLayeredWindowAttributes"
    .参数 hwnd, 整数型
    .参数 crkey, 整数型
    .参数 alpha, 字节型
    .参数 dwflags, 整数型

.DLL命令 取窗口风格, 整数型, , "GetWindowLongA"
    .参数 hwnd, 整数型
    .参数 nIndex, 整数型

.DLL命令 置窗口风格, 整数型, , "SetWindowLongA"
    .参数 hwnd, 整数型
    .参数 nindex, 整数型
    .参数 hnew, 整数型
回复 支持 反对

使用道具 举报

结帖率:33% (3/9)
 楼主| 发表于 2012-7-8 02:01:39 | 显示全部楼层   四川省成都市
http://115.com/file/bevnzmdc#
窗口消炎.rar
.版本 2

.子程序 模块初始化, , 公开, 在启动窗口创建完毕是调用
.参数 待消窗口, 窗口
.参数 是否透明, 逻辑型, ,  
.参数 窗口透明度, 整数型, ,  
.局部变量 Ret, 整数型

Ret = GetWindowLong (待消窗口.取窗口句柄 (), -20)
Ret = 位或 (Ret, 524288)
SetWindowLong (待消窗口.取窗口句柄 (), -20, Ret)
.如果 (是否透明 = 真)
    SetLayeredWindowAttributes (待消窗口.取窗口句柄 (), 0, 窗口透明度, #LWA_ALPHA)
.否则

.如果结束

回复 支持 反对

使用道具 举报

结帖率:33% (3/9)
 楼主| 发表于 2012-7-8 02:05:00 | 显示全部楼层   四川省成都市
http://115.com/file/dpuj6ccv#14种动画窗口加载和关闭特效示例.e
回复 支持 反对

使用道具 举报

结帖率:33% (3/9)
 楼主| 发表于 2012-7-8 02:07:59 | 显示全部楼层   四川省成都市
http://115.com/file/bevnzmdc#
窗口消炎.rar
http://115.com/file/dpuj6ccv#
14种动画窗口加载和关闭特效示例.e
回复 支持 反对

使用道具 举报

发表于 2012-7-8 02:53:11 | 显示全部楼层   广西壮族自治区南宁市
我是菜鸟看不懂- -
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表