这个MFC程序为什么无法显示窗口?
以下是一个用来显示一个窗口的MFC程序,编译什么的都没有问题,运行后任务管理器中也显示有这个进程,但是没有显示出窗口,请问是什么原因?#include<windows.h...
以下是一个用来显示一个窗口的MFC程序,编译什么的都没有问题,运行后任务管理器中也显示有这个进程,但是没有显示出窗口,请问是什么原因?
#include<windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
WNDCLASS wndclass;
HWND hwnd;
MSG msg;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
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="test";
if(!RegisterClass(&wndclass))return FALSE;
hwnd=CreateWindow(
"test",
"test",
WS_OVERLAPPEDWINDOW,
0,0,100,200,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
switch(message){
case WM_PAINT:
HDC hdc;
PAINTSTRUCT ps;
hdc=BeginPaint(hwnd,&ps);
TextOut(hdc,0,0,"hahaha",100);
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
} 展开
#include<windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
WNDCLASS wndclass;
HWND hwnd;
MSG msg;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
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="test";
if(!RegisterClass(&wndclass))return FALSE;
hwnd=CreateWindow(
"test",
"test",
WS_OVERLAPPEDWINDOW,
0,0,100,200,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
switch(message){
case WM_PAINT:
HDC hdc;
PAINTSTRUCT ps;
hdc=BeginPaint(hwnd,&ps);
TextOut(hdc,0,0,"hahaha",100);
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
} 展开
3个回答
展开全部
首先,你这不是一个MFC程序,这是一个SDK窗口程序,或者叫win32API窗口程序,和MFC没有一点关系。
其次,你这个程序的代码没有问题,在VC6多字节字符集方式下可以运行成功并显示一个窗口。
其次,你这个程序的代码没有问题,在VC6多字节字符集方式下可以运行成功并显示一个窗口。
更多追问追答
追问
谢谢指教!我是一个初学者。
请问您说的“在VC6多字节字符集方式下可以运行成功并显示一个窗口”是什么意思呢?我使用的是VisualC++6.0,为什么显示不出来?有什么解决方法吗?
谢谢!
展开全部
试一试添加窗口可见的风格。
追问
怎么做呢?
追答
wndclass.style=WS_OVERLAPPEDWINDOW|WS_VISIBLE
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说要改变窗口标题?我给函数便:
SetTitle(标题);(引号内内容自想加入标题)行
SetTitle(标题);(引号内内容自想加入标题)行
追问
谢谢 函数使用格式看不太懂 能写清楚一些吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询