使用ShowWindow显示不出来窗口但是有进程 ,求解!
时间:2011-12-09
来源:互联网
#include <Windows.h>
#include <stdio.h>
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd )
{
WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=WinSunProc;
wndcls.lpszClassName=(LPCWSTR)"WEIX";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW|CS_VREDRAW;
nShowCmd=SW_SHOWDEFAULT;
RegisterClass(&wndcls);
HWND hwnd;
hwnd=CreateWindow((LPCWSTR)"WeiXin2003",(LPCWSTR)"中国bj",WS_OVERLAPPEDWINDOW,
0,0,600,400,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd, nShowCmd);
UpdateWindow(hwnd);
MSG msg;
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lPARAM)
{
switch (uMsg)
{
case WM_CHAR:
char szChar[20];
sprintf(szChar,"Char is %d",wParam);
MessageBox(hwnd,(LPCWSTR)szChar,(LPCWSTR)"WeiXin",0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,(LPCWSTR)"mouser clicked",(LPCWSTR)"WeXin",0);
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,0,50,(LPCTSTR)"计算机C++Lesson",strlen("计算机C++Lesson1"));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC=GetDC(hwnd);
TextOut(hDC,0,0,(LPCWSTR)"课室1", strlen ("课室1"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if (IDYES==MessageBox(hwnd,(LPCWSTR)"是否真的结束",(LPCWSTR)"WeiXin",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lPARAM);
}
}
#include <stdio.h>
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd )
{
WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=WinSunProc;
wndcls.lpszClassName=(LPCWSTR)"WEIX";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW|CS_VREDRAW;
nShowCmd=SW_SHOWDEFAULT;
RegisterClass(&wndcls);
HWND hwnd;
hwnd=CreateWindow((LPCWSTR)"WeiXin2003",(LPCWSTR)"中国bj",WS_OVERLAPPEDWINDOW,
0,0,600,400,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd, nShowCmd);
UpdateWindow(hwnd);
MSG msg;
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lPARAM)
{
switch (uMsg)
{
case WM_CHAR:
char szChar[20];
sprintf(szChar,"Char is %d",wParam);
MessageBox(hwnd,(LPCWSTR)szChar,(LPCWSTR)"WeiXin",0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,(LPCWSTR)"mouser clicked",(LPCWSTR)"WeXin",0);
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,0,50,(LPCTSTR)"计算机C++Lesson",strlen("计算机C++Lesson1"));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC=GetDC(hwnd);
TextOut(hDC,0,0,(LPCWSTR)"课室1", strlen ("课室1"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if (IDYES==MessageBox(hwnd,(LPCWSTR)"是否真的结束",(LPCWSTR)"WeiXin",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lPARAM);
}
}
作者: gh1223189184 发布时间: 2011-12-09
C/C++ code
由于你的类名没有写,所以出现问题的
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd ) { WNDCLASS wndcls; TCHAR szAppName[] = _T("test"); wndcls.cbClsExtra=0; wndcls.cbWndExtra=0; wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); wndcls.hIcon=LoadIcon(NULL,IDI_ERROR); wndcls.hInstance=hInstance; wndcls.lpfnWndProc=WinSunProc; wndcls.lpszClassName=(LPCWSTR)"WEIX"; wndcls.lpszMenuName=NULL; wndcls.style=CS_HREDRAW|CS_VREDRAW; wndcls.lpszClassName = szAppName; // nShowCmd=SW_SHOWDEFAULT; if(!RegisterClass(&wndcls)) { MessageBox(NULL,_T("Register Wnd class failed!\n"),_T("test"),MB_ICONERROR); return 0 ; } HWND hwnd; hwnd=CreateWindow(szAppName,_T("中国bj"),WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL); ShowWindow(hwnd, nShowCmd); UpdateWindow(hwnd); MSG msg; while (GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lPARAM) { switch (uMsg) { case WM_CHAR: char szChar[20]; sprintf(szChar,"Char is %d",wParam); MessageBox(hwnd,(LPCWSTR)szChar,(LPCWSTR)"WeiXin",0); break; case WM_LBUTTONDOWN: MessageBox(hwnd,(LPCWSTR)"mouser clicked",(LPCWSTR)"WeXin",0); HDC hdc; hdc=GetDC(hwnd); TextOut(hdc,0,50,(LPCTSTR)"计算机C++Lesson",strlen("计算机C++Lesson1")); ReleaseDC(hwnd,hdc); break; case WM_PAINT: HDC hDC; PAINTSTRUCT ps; hDC=GetDC(hwnd); TextOut(hDC,0,0,(LPCWSTR)"课室1", strlen ("课室1")); EndPaint(hwnd,&ps); break; case WM_CLOSE: if (IDYES==MessageBox(hwnd,(LPCWSTR)"是否真的结束",(LPCWSTR)"WeiXin",MB_YESNO)) { DestroyWindow(hwnd); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lPARAM); } }
由于你的类名没有写,所以出现问题的
作者: W170532934 发布时间: 2011-12-10
wndcls.lpszClassName=(LPCWSTR)"WEIX";
CreateWindow((LPCWSTR)"WeiXin2003",
上面的两个名字应该取一样的,否则不能显示 。
而且unicode是TEXT("WEIX")这样写,你那样写的话不行了。
。。。
CreateWindow((LPCWSTR)"WeiXin2003",
上面的两个名字应该取一样的,否则不能显示 。
而且unicode是TEXT("WEIX")这样写,你那样写的话不行了。
。。。
作者: mingliang1212 发布时间: 2011-12-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28