鱼C论坛

 找回密码
 立即注册
查看: 2707|回复: 11

CreateWindow问题

[复制链接]
发表于 2015-3-14 21:14:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 885031918 于 2015-3-14 21:56 编辑

1.WNDCLASS的wndclass.lpszClassName = szAppname;CreateWindow的第一个参数不是szAppname就无法显示了(但是后台是有的),,这是为啥?

评分

参与人数 1鱼币 +20 收起 理由
freeparty + 20 ok,已奖励

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-15 08:28:47 | 显示全部楼层
贴代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-15 13:08:57 | 显示全部楼层

#include "windows.h"
#include "strsafe.h"
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR iCmdLine, int iCmdShow)
{
        MSG msg;
        WNDCLASS wdc;
        HWND hwnd;
        static TCHAR szAppname[] = TEXT("1" );
        static TCHAR szApp[] = TEXT("2");

        wdc.style = CS_HREDRAW | CS_VREDRAW;
        wdc.cbClsExtra = 0;
        wdc.cbWndExtra = 0;
        wdc.lpfnWndProc = WndProc;
        wdc.hInstance = hInstance;
        wdc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(101));
        wdc.hCursor = LoadCursor(NULL, IDC_ARROW);
        wdc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
        wdc.lpszClassName = szAppname;
        wdc.lpszMenuName = NULL;       

        if (!RegisterClass(&wdc))
        {
                MessageBox(NULL, TEXT("这个程序需要Windows NT才能运行!"),szAppname, MB_ICONERROR);
                return 0;

        }

        hwnd = CreateWindow(szApp,
                szApp,
                WS_OVERLAPPEDWINDOW|WS_VSCROLL|WS_HSCROLL,
            CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                NULL,
                NULL,
                hInstance,
                NULL
                );

        ShowWindow(hwnd, iCmdShow);
        UpdateWindow(hwnd);

        while (GetMessage(&msg, NULL, 0, 0))
        {
                TranslateMessage(&msg);
            DispatchMessage(&msg);
        }

        return msg.wParam;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-15 13:23:13 | 显示全部楼层
RegisterClass时的时候传入一个WNDCLASS结构是在系统中注册一个样式为WNDCLASS的内存样式,CreateWindow的第一个参数要求你给出系统一个类名,然而这个创建的窗口样式就和WNDCLASS一样了,如果你没有传入类名,或是传入了一个没有注册的类名,CreateWindow就会失败,然后在下面消息循环中陷入一个死循环,所以程序就不会自己去退出进程了。
有不明白的加群246537769
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-15 14:14:32 | 显示全部楼层
freeparty 发表于 2015-3-15 13:23
RegisterClass时的时候传入一个WNDCLASS结构是在系统中注册一个样式为WNDCLASS的内存样式,CreateWindow的 ...

非常感谢你的耐心解答。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-15 14:16:11 | 显示全部楼层
885031918 发表于 2015-3-15 14:14
非常感谢你的耐心解答。

不客气,加群我们共同学习windows程序设计
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-15 14:44:45 | 显示全部楼层
freeparty 发表于 2015-3-15 14:16
不客气,加群我们共同学习windows程序设计

不是吧,,,你还不让我加(有不明白的加群246537769)?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-15 15:19:54 | 显示全部楼层
885031918 发表于 2015-3-15 14:44
不是吧,,,你还不让我加(有不明白的加群246537769)?

没有啊,你重加下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-16 05:51:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-16 05:52:41 | 显示全部楼层
代码需要慢慢理解,不可能一步登天。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-6-13 16:49:40 | 显示全部楼层
厉害   学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-6-25 21:46:55 | 显示全部楼层
路过看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 19:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表