VS使用对话框资源创建C/C++窗口项目过程
需要两步:1、创建消息处理函数
2、处理消息
一、创建c++空项目(注意:项目目录不能出现中文)
二、编写入口程序代码
#include <Windows.h>
#include "resource.h"
//主入口
int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
INT_PTR CALLBACK MainDlgProc(HWND bDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
DialogBox(hinstance,//入口HINSTANCE
MAKEINTRESOURCE(IDD_MAIN),//对话框窗口模板句柄
NULL,//父窗口
MainDlgProc);//窗口过程
}
//窗口过程函数
INT_PTR CALLBACK MainDlgProc(HWND bDlg, //句柄
UINT uMsg, //消息
WPARAM wParam, //参数
LPARAM lParam)//参数
{
BOOL bRet=TRUE;
//处理窗口消息
switch(uMsg)
{//对窗口转发过来的消息进行处理
case WM_LBUTTONDOWN:
MessageBox(bDlg,"鼠标单击了","Demo",MB_OK);
break;
case WM_COMMAND://命令消息--点击按钮时走这里
switch(LOWORD(wParam)){//wParam的低地址是按钮的ID
case IDC_BUTTON1:
MessageBox(bDlg,"点击了按钮1","Demo",MB_OK);
break;
case IDC_BUTTON2:
MessageBox(bDlg,"点击了按钮2","Demo",MB_OK);
break;
case IDOK:
MessageBox(bDlg,"点击了确定按钮","Demo",MB_OK);
break;
case IDCLOSE:
MessageBox(bDlg,"点击了取消按钮","Demo",MB_OK);
break;
default:
bRet=FALSE;
break;
}
break;
case WM_CLOSE://关闭窗口时
EndDialog(bDlg,0);
break;
default://其它消息交由windows处理,DefWindowProc是系统默认的窗口过程
bRet=FALSE;
break;
}
return bRet;
};
^真是厉害啊谢谢你的点悟 不错不错。说出了我在大学的困惑和努力的方向。。谢谢!! 同样的说法,感动!我有时候有一种感觉就是经常写程序,写到一定程度就没有太大的提高了。总觉得自己学的差不多了!看了这篇文章真的惭愧越年越心虚!越感到自己的无知!再一次谢了!发自内心的!有了以后的想法!还是感谢!别的什么都不说了! ^做为一个刚入门程序的我都感触良多..向你表示120分的敬意 感触很深 有道理啊 谢谢你给了我一个好的起点 很有用对我这个新学者来说。我会努力的 是啊,受益匪浅!!!