15,979
社区成员
发帖
与我相关
我的任务
分享
INT_PTR CALLBACK DialogProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)//对话框消息处理函数
{
switch (uMsg)//处理消息循环
{
case WM_INITDIALOG://初始化对话框 消息是对话框才能收到的消息,表明对话框及其所有子控件都创建完毕了
{
int scrWidth,scrHeight;
RECT rect;
scrWidth=GetSystemMetrics(SM_CXSCREEN);
scrHeight=GetSystemMetrics(SM_CYSCREEN);
::GetWindowRect(hwndDlg,&rect);
::SetWindowPos(hwndDlg,HWND_TOP,(scrWidth-rect.right+rect.left)/2,((scrHeight-rect.bottom+rect.top)/2)-20,0,0,SWP_NOSIZE|SWP_SHOWWINDOW);
break;
}
case WM_CLOSE:
DestroyWindow(hwndDlg);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch (LOWORD(wParam))//判断是什么控件产生的命令消息
{
case IDC_BUTTON1:
{
if (BN_CLICKED==HIWORD(wParam))//如果是按钮1被按下
{
MessageBox(0,"按钮1",0,0);
break;
}
break;
}
}
break;
default:
break;
}
return 0;
}
DWORD WINAPI CreateDLLWindow(LPVOID lpParameter)
{
DialogBox(This_hModule, (LPCTSTR)IDD_DIALOG1, NULL, DialogProc);//创建并显示窗口
return 1;
}