一个简单的测试消息对话框的程序,麻烦高手帮我看一下。就是窗体接受到按键不
蹦出一个消息对话框。但程序运行时,怎么不直接蹦出来,而是要按一下Alt才行?
谢谢#include<windows.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include "resource.h"
HINSTANCE hInst;
LRESULT CALLBACK WndProc
( HWND hWnd,
UINT imsg,
WPARAM wPara,
LPARAM lPara
);
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
HWND hWnd;
MSG msg;
WNDCLASS WndClass; WndClass.style=0;
WndClass.lpfnWndProc=WndProc;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hInstance=hInstance;
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hCursor=LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
WndClass.lpszMenuName=NULL;
WndClass.lpszClassName="WinFill";
if(!RegisterClass(&WndClass))
{ MessageBeep(0);
return 0;
}
hWnd=CreateWindow("WinFill",
"填充示例程序",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
LoadMenu(hInstance,"menu"),
hInstance,
NULL);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);//
hInst=hInstance;
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}LRESULT CALLBACK WndProc
( HWND hWnd,
UINT imsg,
WPARAM wParam,
LPARAM lParam
)
{
switch(imsg)
{
case WM_PAINT:
break;
case WM_COMMAND:
break;
case WM_CHAR:
MessageBox(NULL,"good",NULL,MB_YESNOCANCEL|MB_ICONEXCLAMATION);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hWnd,imsg,wParam,lParam));
}
return 0;
}
蹦出一个消息对话框。但程序运行时,怎么不直接蹦出来,而是要按一下Alt才行?
谢谢#include<windows.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include "resource.h"
HINSTANCE hInst;
LRESULT CALLBACK WndProc
( HWND hWnd,
UINT imsg,
WPARAM wPara,
LPARAM lPara
);
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
HWND hWnd;
MSG msg;
WNDCLASS WndClass; WndClass.style=0;
WndClass.lpfnWndProc=WndProc;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hInstance=hInstance;
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hCursor=LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
WndClass.lpszMenuName=NULL;
WndClass.lpszClassName="WinFill";
if(!RegisterClass(&WndClass))
{ MessageBeep(0);
return 0;
}
hWnd=CreateWindow("WinFill",
"填充示例程序",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
LoadMenu(hInstance,"menu"),
hInstance,
NULL);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);//
hInst=hInstance;
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}LRESULT CALLBACK WndProc
( HWND hWnd,
UINT imsg,
WPARAM wParam,
LPARAM lParam
)
{
switch(imsg)
{
case WM_PAINT:
break;
case WM_COMMAND:
break;
case WM_CHAR:
MessageBox(NULL,"good",NULL,MB_YESNOCANCEL|MB_ICONEXCLAMATION);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hWnd,imsg,wParam,lParam));
}
return 0;
}
解决方案 »
- 有人做过单片机上位机的界面么
- 小问题 线程同步
- 关于bmp图像和avi相关问题的
- 求助:当 PS2 或 XBOX 改装成街机,怎么判断游戏是否结束呢?谢谢!
- 投递 WSARecv 时,返回错误,WSAGetLastError() 得到6,是 INVALID SOCKET HANDLE!?
- 请问怎样从截获的数据包中取出目标IP地址,源IP?
- BOOL 大发现:: 一个microsoft api的bug,大家都来看阿!!!
- up有分 共享图像处理代码
- 图形软件ProEngineer进行二次开发高手的简单问题!
- 刚开始的挫折(ODBC-CRecordset)
- 想系统的学习编程,希望有经验的给我介绍个学校。3-6月的!
- 急,这样的SQL语句该怎么写,在线等待!
case WM_PAINT:
break;
两句去掉。
试试看!
如果你对 WM_PAINT 的处理,不作任何事情,Windows会认为你没有吃完饭,
会继续请你吃,WM_PAINT 在消息队列中继续存在。
当然如果对 WM_PAINT 作最简单的处理,就可以抹嘴走人。case WM_PAINT:
{
PAINTSTRUCT ps;
BeginPaint(hwnd, &ps);
// 中间啥都不干
EndPaint(hwnd, &ps);
break;
}把上边代码重新贴上,试试看!注:我不是M$的人。