| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 562 人关注过本帖
标题:关于API按钮
只看楼主 加入收藏
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
关于API按钮
最近创建了个窗口,想在窗口里面添加几个按钮,找了好长时间终于找到方法了,好多地方都搞不明白,如下:
hwndButton = CreateWindow(
    "BUTTON",   // predefined class
    "OK",       // button text
    WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,  // styles
    // Size and position values are given explicitly, because
    // the CW_USEDEFAULT constant gives zero values for buttons.
    10,         // starting x position
    10,         // starting y position
    100,        // button width
    100,        // button height
    hwnd,       // parent window
    NULL,       // No menu    //这句是什么意思呢?又起了什么作用呢?这个是NULL,有的是这样写的 (HMENU)btn2,下面使用这个按钮就这样 case btn2:如果这里是NULL,cass后面该怎么写呢?
STANCE) GetWindowLong(hwnd, GWL_HINSTANCE),  //这一句是什么意思呢?查到的是:得到当前程序的实例句柄,但是这个句柄是什么呢?我如果要单击这个做好的按钮cass后面该怎么写呢?
    NULL);      // pointer not needed
另外case WM_LBUTTONDOWN:是鼠标单击时进行的操作,如果鼠标单击里面还有很多选项,也就是还有一个switch语句,在外层判断是键盘按下还是鼠标按下那里是定义了一个UINT uMsg,然后switch(uMsg),但是在鼠标单击那个switch()里面怎么定义这个消息呢?随便定义了一个变量不起作用。是为什么呢?仿照外面定义那个我定义了一个UINT xinxi,然后switch(xinxi),后面是case btn2:表示单击了这个按钮,为什么没有反应呢?
希望大家帮忙解决


[ 本帖最后由 小赵q1 于 2012-4-15 06:15 编辑 ]
搜索更多相关主题的帖子: 100 position starting because 
2012-04-15 05:44
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:20 
仔细读读msdn吧,上面关于各个参数的作用讲得很清楚了。
CreateWindow中第九个参数,对于创建窗口来说,就是指定菜单的句柄。但如果用于创建子控件的话,这里就是指定子控件的Control ID值。为什么要写成(HMENU)btn2?因为这里需要的参数是HMENU类型的参数。

GetWindowLong(hwnd, GWL_HINSTANCE)获取当前程序的实例句柄,实际上是通过hwnd查询HINSTANCE,用于获取程序实例句柄的方法至少有三种,一种是通过WinMain函数第一个参数传进来,还有一种可以通过GetModuleHandle(NULL);//获取程序模块实例句柄。

按钮单击问题,当用户单击按钮,windows不会把WM_LBUTTONDOWN发送给你的窗口过程,因为Button有它自己默认的处理过程,就是把WM_LBUTTONDOWN转换成WM_COMMAND消息发给你,你程序收到的是WM_COMMAND消息,至于区分是哪个按钮被按了,当然是在这个消息里switch(LOWORD(wParam))写对应的ID(也就是CreateWindows中指定的(HMENU)btn2值)语句,当然,除非你自己接管这个处理过程,也就是我们说的子类化控件,你才会在自定义控件过程中收到这个消息。

我们都在路上。。。。。
2012-04-15 10:49
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 2楼 hellovfp
我会努力的,谢谢。
2012-04-16 23:05
快速回复:关于API按钮
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013424 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved