好吧,我正在用C语言建立一个大学项目.GUI还没有被教过,但我希望我的程序更好,所以我正在学习Windows API.
我在这里遵循这个教程:http://www.winprog.org/tutorial/start.html,它非常好.它解释了很多东西,但我找不到一件事(甚至搜索谷歌,但一切都是针对C++或C#):
如何在绘制的窗口(我学到的)中绘制一个命令按钮以及如何接受它的事件?
您能否回答或指向一个很好的页面,解释如何使用ONLY Windows API和C来创建命令按钮.请不要使用C++.
谢谢你的时间!:)
小智 5
这是我强烈推荐的关于Win32 API用户界面功能的教程.这很棒.粗略地说,在你的回调函数中(LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )你可以捕获几个选项:
switch(msg)
{
case WM_CREATE:
break;
case WM_COMMAND:
break;
/* .. */
}
Run Code Online (Sandbox Code Playgroud)
你需要做的WM_CREATE是这样的事情:
HWND hWnd_button = CreateWindow(TEXT("button"), TEXT("Quit"),
WS_VISIBLE | WS_CHILD ,
20, 50, 80, 25,
hwnd, (HMENU) 1, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)
我存储该HWND按钮的原因是,如果你想在以后更改按钮,你需要将Handle作为参数SendMessage().现在,接下来,点击一下.单击该按钮时,它将WM_COMMAND使用HMENU铸造参数(在本例中为1)发送到父窗口wParam.这适用于您创建的每个控件(菜单,复选框等 - 如果它们发布可能存在的更复杂的选项lParam).所以:
case WM_COMMAND:
if (LOWORD(wParam) == 1) {
DestroyWindow();
/* or SendMessage(hwnd, WM_CLOSE,0,0); see commments */
}
break;
Run Code Online (Sandbox Code Playgroud)
抓住那个特别的选择.在if按钮事件的句柄内.
| 归档时间: |
|
| 查看次数: |
12140 次 |
| 最近记录: |