标题:CreateWindow返回总为空,高手赐教
只看楼主
lizezhonglaile
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-9-20
 问题点数:0 回复次数:10 
CreateWindow返回总为空,高手赐教
窗口创建失败,求教高手
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=WinProc;
    wndcls.lpszClassName="Weixin2003";
    wndcls.lpszMenuName=NULL;
    wndcls.style=CS_HREDRAW | CS_VREDRAW;
    wndcls.hInstance=hInstance;
    RegisterClass(&wndcls);
   
    HWND hwnd;
    hwnd=CreateWindow(TEXT ("Weixin2003"),
“标题",WS_VISIBLE,0,0,600,400,NULL,NULL,hInstance,NULL);

hwnd为空,不知道为什么。
搜索更多相关主题的帖子: CreateWindow 
2008-11-04 11:13
ronaldowsy
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2008-10-20
得分:0 
用MFC很简单的,你用API来做的话很麻烦!
2008-11-04 11:45
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
先熟悉api然后再mfc,这样知道是怎么封装的

学习需要安静。。海盗要重新来过。。
2008-11-04 11:46
woden
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-4
得分:0 
#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WinSunProc(HWND hwnd,      // handle to window
                            UINT uMsg,      // message identifier
                            WPARAM wParam,  // first message parameter
                            LPARAM lParam   // second message parameter
                            );

int WINAPI WinMain(
                   HINSTANCE hInstance,      // handle to current instance
                   HINSTANCE hPrevInstance,  // handle to previous instance
                   LPSTR lpCmdLine,          // command line
                   int nCmdShow              // show state
                   )
{
    
    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="Weixin2003";
    wndcls.lpszMenuName=NULL;
    wndcls.style=CS_HREDRAW | CS_VREDRAW;
    wndcls.hInstance=hInstance;
    RegisterClass(&wndcls);
   
    HWND hwnd;
    hwnd=CreateWindow("Weixin2003","标题",WS_VISIBLE,0,0,600,400,NULL,NULL,hInstance,NULL);
    
    ShowWindow(hwnd,SW_SHOWNORMAL);
    UpdateWindow(hwnd);
    
    MSG msg;
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return 0;
}
    

LRESULT CALLBACK WinSunProc(
                            HWND hwnd,      // handle to window
                            UINT uMsg,      // message identifier
                            WPARAM wParam,  // first message parameter
                            LPARAM lParam   // second message parameter
                            )
{
    return 0;
}
2008-11-04 16:27
lizezhonglaile
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-9-20
得分:0 
我的程序写了这些东西,只不过这里省略了。
上楼同学的我也试了,还是不行。
问题在于 createwindow总返回空句柄,即这个api的调用可能有问题,希望高手提示。
2008-11-04 17:42
woden
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-4
得分:0 
我调试了一下
必须要有WinSunProc的实现
可能你的VC++调试环境不好
加几个断点试试
2008-11-04 18:31
lizezhonglaile
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-9-20
得分:0 
WinSunProc的实现了,这里省略了,但还是不行。你可以试试
2008-11-05 14:24
mkterry
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-10-30
得分:0 
hwnd=CreateWindow(TEXT ("Weixin2003"),
“标题",WS_VISIBLE,0,0,600,400,NULL,NULL,hInstance,NULL);

如果你是复制了以上代码的话,很不幸的告诉你,"标题"的左边引号。。。
2008-11-06 12:31
mayudong1
Rank: 2
等 级:论坛游民
威 望:1
帖 子:348
专家分:21
注 册:2006-4-18
得分:0 
用vc建一个hello world程序,自己比较一下呗

2008-11-06 16:42
lizezhonglaile
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-9-20
得分:0 
那个引号是乱码,编译当然没有问题,请不要在简单语法上找毛病,问题不在这里。就是创建窗口那一句有问题。
2008-11-09 16:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-242317-1-1.html




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

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