| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3386 人关注过本帖
标题:VC调用ShowWindow(hWnd,nCmdShow)为何不显示程序窗口
只看楼主 加入收藏
pchangling
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-7-19
收藏
 问题点数:0 回复次数:11 
VC调用ShowWindow(hWnd,nCmdShow)为何不显示程序窗口

下面的程序段为何不显示窗口,我是在找不出错误,以致下面的编程无法进行,望高手尽快指点,先谢了

#include <windows.h>

//函数声明
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
//主函数
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{

char lpszClassName[]="三角形有限单元法";
//定义窗口类
WNDCLASS wc;
wc.style=0;
wc.lpfnWndProc=WndProc;
wc.cbClsExtra=0;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(hInstance,IDI_APPLICATION);
wc.hCursor=LoadCursor(hInstance,IDC_ARROW);
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName=NULL;
wc.lpszClassName=lpszClassName;
//注册窗口类
if(!RegisterClass(&wc))
{
MessageBeep(0);
return FALSE;
}
//创建窗口
HWND hWnd;
hWnd=CreateWindow(lpszClassName,
"三结点三角形有限单元法",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
//显示窗口
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
//进入消息循环
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return 0;
}

//窗口处理函数
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
default:
return DefWindowProc(hWnd,message,wParam,lParam);
}

return(0);
}

搜索更多相关主题的帖子: nCmdShow ShowWindow hWnd windows 窗口 
2007-07-19 22:22
tomydh
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-6-15
收藏
得分:0 
将nCmdShow 改成1
2007-07-19 22:28
pchangling
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-7-19
收藏
得分:0 
好的,我试一下,我将showwindow中的nCmdShow换为SW_SHOWNORMAL也不行
2007-07-19 22:30
pchangling
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-7-19
收藏
得分:0 

不行,程序窗口还是出不来,进程管理器中有窗口,但桌面上就是出不来,哭啊,。

2007-07-19 22:32
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
收藏
得分:0 
在CreateWindow中,窗口风格该一下换成WS_POPUP | WS_CAPTION试试看

2007-07-19 22:57
pchangling
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-7-19
收藏
得分:0 

我试过了,还是不行啊,但还是谢谢大侠的指点,急切求助,

2007-07-20 10:46
cumtzdhlx
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-8
收藏
得分:0 

WNDCLASS的style设置有问题,你设置成CS_HREDRAW|CS_VREDRAW

2007-07-20 11:41
cumtzdhlx
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-8
收藏
得分:0 

另外你给窗口设置光标样式还有图标的时候,请把第一个参数设置为NULL,因为你调用的是系统给定的样式,MSDN中要求如果是标准样式,第一个参数为NULL

2007-07-20 11:43
pchangling
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-7-19
收藏
得分:0 

恩,我试过了,将那两个参数改为NULL,WNDCLASS的style设置成CS_HREDRAW|CS_VREDRAW,但还是出不来窗口,应该不是style的设置问题,我看好多书上采用默认的窗口样式时都是设置为0,我纳闷死了,比着书上输入的并且找不出任何错误,为什么出不来窗口,谢谢了

2007-07-20 12:06
cumtzdhlx
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-8
收藏
得分:0 

我帮你运行了一下代码,关键是你的WNDCLASS里面的wc.cbWndExtra=0没有给它赋值,所以导致你注册的时候没有通过,你想看看的话可以在你的注册循环中设置一个断点,发现会进去断点,因此没有注册成功,你以后要是再写这样的程序,你可以WNDCLASS cs以后,根据cs给你的提示来写,就不会有漏掉的情况了
另外以后你遇到这样的问题,可以自己插入断点来调试,它没有显示出来,如果前面代码没有错误,那么只可能是没有注册成功.

2007-07-20 12:42
快速回复:VC调用ShowWindow(hWnd,nCmdShow)为何不显示程序窗口
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018262 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved