| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1504 人关注过本帖
标题:[求助]急急急!!!请教一个创建窗口失败的问题(我是菜鸟)
只看楼主 加入收藏
regou
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-3-26
收藏
 问题点数:0 回复次数:6 
[求助]急急急!!!请教一个创建窗口失败的问题(我是菜鸟)

我编了一个简单的windows程序,只是创建了一个窗口,编译连接都没有错误。

但运行没结果,即没有出现窗口。

我用messagebox检查了,觉得可能是注册失败,请问该怎么处理。

#include <windows.h> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevinst, LPSTR lpszCmdLine, int nCmdShow) { HWND hwnd ; MSG Msg; WNDCLASS wndclass; char lpszClassName[]="windowsL"; char lpszTitle[]="My_Windows"; wndclass.style=0; wndclass.lpfnWndProc=WndProc; wndclass.cbClsExtra=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=lpszClassName; if(!RegisterClass(&wndclass)) { MessageBox(NULL,"mistake","check",MB_OK|MB_ICONEXCLAMATION);

return FALSE; } hwnd=CreateWindow(lpszClassName, lpszTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 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_DESTROY: PostQuitMessage(0); default: return DefWindowProc(hwnd,message,wParam,lParam); } return(0); }

搜索更多相关主题的帖子: 窗口 失败 
2005-03-26 13:49
ronan
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2004-12-27
收藏
得分:0 
请问你的wndclass的cbWndExtra属性怎么没有赋值?

Happiness is a journey, not a destination. So... Work like you don\'t need money Love like you\'ve never been hurt And dance like no one\'s watching 才开的游戏论坛http://ronan.185.cc/,希望碰场
2005-03-28 17:46
晕晕滴
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-3-28
收藏
得分:0 
嗯,看了姐姐的批语,我下定决心要好好学习天天向上
2005-03-29 18:15
rzd
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-5-6
收藏
得分:0 
1

2005-05-09 11:15
wandd
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2005-5-12
收藏
得分:0 

linking... LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/mywin.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe.

mywin.exe - 2 error(s), 0 warning(s) ///////////////////////////////////////////////////////////////////////

我是菜鸟。 这是我照着抄的一个windows 程序,编译通过了 但是不能构建.exe文件,不能执行.上面是出错信息, 只知道字面什么意思,但不知道含义.到底怎么了 ? 那位高手给讲讲????先谢谢了!!

///////////////////////////////////////////////////////////////////////// 下面是原程序: #include<windows.h>

#include<string.h> #include<stdio.h> LRESULT CALLBACK WindowFunc(HWND,UINT,WPARAM,LPARAM); char szWinName[]="MyWin"; //name of the window. char str[255] =" "; //hold output string.

int WINAPI WinMain(HINSTANCE hThisInst,HINSTANCE hPrevInst, LPSTR lpszArgs,int nWinMode) {

HWND hwnd; MSG msg; tagWNDCLASSEXA wcl; //define a window class. wcl.cbSize=sizeof(tagWNDCLASSEXA); wcl.hInstance = hThisInst; // handle to this instance wcl.lpszClassName=szWinName;//window class name wcl.lpfnWndProc=WindowFunc;// window function wcl.style=0; // default style

wcl.hIcon=LoadIcon(NULL,IDI_APPLICATION);//standard icon wcl.hIconSm=LoadIcon(NULL,IDI_WINLOGO); //SMALL icon wcl.hCursor=LoadCursor(NULL,IDC_ARROW);//CURSOR style

wcl.lpszMenuName=NULL;//no menu wcl.cbClsExtra=0; // no extra wcl.cbWndExtra=0;// no information needed

//make the window white wcl.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);

// register the window class if(!RegisterClassExA(&wcl))return 0;

//now that a window class has been registered ,a window //can be created. hwnd=CreateWindow( wcl.lpszClassName,// name of the window "Processing WM_CHAR Messages",//title WS_OVERLAPPEDWINDOW,//window style -normal CW_USEDEFAULT,// CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, // NO PARENT WINDOW NULL, // NO MENU hThisInst, // handle of this instance of program NULL //no additional arguments ); // display the window ShowWindow(hwnd,nWinMode); UpdateWindow(hwnd);

//create the message loop while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg);// DispatchMessage(&msg); //return cotrol to window 98 }

return msg.wParam;

} // this function is called by window 98 an is passed message // from the message queue

LRESULT CALLBACK WindowFunc(HWND hwnd,UINT message, WPARAM wParam,LPARAM lParam) { HDC hdc;

switch(message){ case WM_CHAR: hdc=GetDC(hwnd); TextOut(hdc,1,1," ",3); printf(str,"%c",(char)wParam); TextOut(hdc,1,1,str,strlen(str)); ReleaseDC(hwnd,hdc); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,message,wParam,lParam); } 我的问题好像和你的差不多啊!!! 那个高手指点指点啊!!!

return 0; }

2005-05-13 18:28
mountain
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2005-5-28
收藏
得分:0 
这个不用自己写 很多人都用向导生成的例子扩充自己的功能 又稳定又省事
2005-05-28 15:10
一只耳
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-7-1
收藏
得分:0 
[讨论]
我以前也遍过这个程序和你的问题差不多。但是还好能编译过去。其实把窗体的属性减减。剩下一个框编译一下。这样的效果应该很好理解。

2005-07-01 00:54
快速回复:[求助]急急急!!!请教一个创建窗口失败的问题(我是菜鸟)
数据加载中...
 
   



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

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