VC Win32对话框设计,我想做一个简单的登陆界面?为什么下面的代码老编译不通过?
BOOLCALLBACKLogIn(HWNDhDlg,WPARAMwParam,LPARAMlParam){switch(LOWORD(wParam))//不是应该跟控件...
BOOL CALLBACK LogIn(HWND hDlg,WPARAM wParam,LPARAM lParam)
{
switch(LOWORD(wParam))//不是应该跟控件的IDC相关联么,为什么跟消息IDOK..相关联,况且系统又不知道//我按的哪个按钮,怎么处理消息?
{
case IDCANCEL:
{
EndDialog(hDlg,IDCANCEL);
}break;
case IDOK:
{
}break;
}
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
// DialogBox(hInstance,(LPCSTR)(IDD_DIALOG1),NULL,MainProc);
DialogBox(hInstance,(LPCSTR)(IDD_LOGIN),NULL,LogIn);
return 0;
}
//还有求大神解释一下他是怎么区分按钮的?我的意思是点击登录传递的消息会是什么??到底点击什么时候传递IDOK什么时候传递IDCANCEL? 展开
{
switch(LOWORD(wParam))//不是应该跟控件的IDC相关联么,为什么跟消息IDOK..相关联,况且系统又不知道//我按的哪个按钮,怎么处理消息?
{
case IDCANCEL:
{
EndDialog(hDlg,IDCANCEL);
}break;
case IDOK:
{
}break;
}
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
// DialogBox(hInstance,(LPCSTR)(IDD_DIALOG1),NULL,MainProc);
DialogBox(hInstance,(LPCSTR)(IDD_LOGIN),NULL,LogIn);
return 0;
}
//还有求大神解释一下他是怎么区分按钮的?我的意思是点击登录传递的消息会是什么??到底点击什么时候传递IDOK什么时候传递IDCANCEL? 展开
展开全部
问题:
1、你的LogIn函数没有返回值;
2、LogIn函数作为对话框窗口过程,需要4个参数而不是三个;需要在第二个位置添加UINT uMsg参数,并需要返回INT_PTR类型,如下(手敲,可能有误,仅说明原理):
INT_PTR CALLBACK LogIn(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_COMMAND: //
switch(LOWORD(wParam))
{
case IDCANCEL:
break;
case IDOK:
break;
}
break;
default:
break;
}
}
3、DialogBox函数的第二个参数需要使用MAKEINTRESOURCE宏进行转换;
4、建议多看MSDN。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询