为什么我写的WIN32窗口程序成功后没有窗口显示 运行没问题 任务管理器有显示,就是没有窗口弹出

wcy981021 2019-05-24 03:51:51
#include "stdafx.h"
#include <windows.h>

//6.处理窗口过程
LRESULT CALLBACK WindowProc(
HWND hwnd,//消息所属的窗口句柄
UINT uMsg,//具体的消息名称 WX_XXXX消息名
WPARAM wParam,//键盘附加消息
LPARAM lParam//鼠标附加消息
)
{
//返回值用默认处理方式
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
int WINAPI WinMain(
HINSTANCE hInstance, //应用程序实例句柄
HINSTANCE hPrevInstance, //在win32环境下参数一般为null不起作用
LPSTR lpCmdLine, //char * argv[]
int nShowCmd) //显示命令 最大化 最小化 正常
{
/*
1.设计窗口
2.注册窗口
3.创建窗口
4.显示更新
5.通过循环取消息
6.处理消息(窗口过程)
*/



//1.设计窗口
WNDCLASS wc;
wc.cbClsExtra = 0;//类的额外内存
wc.cbClsExtra = 0;//窗口额外内存
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//设置背景
wc.hCursor = LoadCursor(NULL, IDC_IBEAM);//设置光标 如果第一个参数为NULL 代表使用系统提供的光标
wc.hIcon = LoadIcon(NULL, IDI_EXCLAMATION);//图标 如果第一个参数为NULL 代表使用系统提供的图标
wc.hInstance = hInstance;//应用程序实例句柄 传入WinMain中的形参即可
wc.lpfnWndProc = WindowProc;//回调函数 窗口过程
wc.lpszClassName = TEXT("wc");//指定窗口类名称
wc.lpszMenuName = NULL;//菜单名称
wc.style = 0;//显示风格 0代表默认

//2.注册窗口

RegisterClass(&wc);

//3.创建窗口

/*
lpClassName, 类名
lpWindowName, 标题名
dwStyle, WS_OVERLAPPEDWINDOW 混合风格
x, 显示坐标 CW_USEDEFAULT 默认值
y, 显示坐标 CW_USEDEFAULT 默认值
nWidth, 宽 CW_USEDEFAULT 默认值
nHeight, 高 CW_USEDEFAULT 默认值
hWndParent, 父窗口 NULL
hMenu, 菜单 NULL
hInstance, 实际句柄 hInstance
lpParam 附加值 NULL
*/
HWND hwnd = CreateWindow(wc.lpszClassName, TEXT("wc"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);


//4.显示更新

ShowWindow(hwnd, SW_SHOWNORMAL);
UpdateWindow(hwnd);

//5.通过循环取消息

/*
HWND hwnd;z主窗口句柄
UINT message; 具体消息名称
WPARAM wParam; 附加消息 键盘消息
LPARAM lParam; 附加消息 鼠标消息
DWORD time; 消息产生时间
POINT pt; 附加消息 鼠标消息 坐标xy
*/

MSG msg;
while (1)
{
/*
_Out_ LPMSG lpMsg, 消息
_In_opt_ HWND hWnd, 捕获窗口 NULL代表捕获所有窗口
_In_ UINT wMsgFilterMin, 最大和最小的过滤的消息 一般填入
_In_ UINT wMsgFilterMax 填代表捕获所有消息
*/
if (GetMessage(&msg, NULL, 0, 0) == FALSE)
{
break;
}

//翻译消息
TranslateMessage(&msg);

//不为false 分发消息

DispatchMessage(&msg);
}

//6.处理消息(窗口过程)


return 0;
}


...全文
658 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2019-05-24
  • 打赏
  • 举报
回复
wc.cbClsExtra = 0;//类的额外内存
wc.cbClsExtra = 0;//窗口额外内存
wcy981021 2019-05-24
  • 打赏
  • 举报
回复
引用 8 楼 zgl7903 的回复:
留意RegisterClass的返回值, cbWndExtra 没有初始化 WNDCLASS wc ={0}; …………
初始后就好了谢谢啊但是为什么啊
wcy981021 2019-05-24
  • 打赏
  • 举报
回复
引用 8 楼 zgl7903 的回复:
留意RegisterClass的返回值, cbWndExtra 没有初始化 WNDCLASS wc ={0}; …………
必须要初始化?我看别人写的好像没有。。
zgl7903 2019-05-24
  • 打赏
  • 举报
回复
留意RegisterClass的返回值, cbWndExtra 没有初始化 WNDCLASS wc ={0}; …………
wcy981021 2019-05-24
  • 打赏
  • 举报
回复
引用 5 楼 schlafenhamster 的回复:
检查 HWND hwnd = CreateWindow
检查了好几遍,按要求输的
wcy981021 2019-05-24
  • 打赏
  • 举报
回复
引用 5 楼 schlafenhamster 的回复:
检查 HWND hwnd = CreateWindow
还是不行
schlafenhamster 2019-05-24
  • 打赏
  • 举报
回复
检查 HWND hwnd = CreateWindow
wcy981021 2019-05-24
  • 打赏
  • 举报
回复
引用 2 楼 schlafenhamster 的回复:
nWidth, 宽 CW_USEDEFAULT 默认值 nHeight, 高 CW_USEDEFAULT 默认值 改 600 400
还是不出现
wcy981021 2019-05-24
  • 打赏
  • 举报
回复
还是没有出现
schlafenhamster 2019-05-24
  • 打赏
  • 举报
回复
nWidth, 宽 CW_USEDEFAULT 默认值
nHeight, 高 CW_USEDEFAULT 默认值
改 600
400
wcy981021 2019-05-24
  • 打赏
  • 举报
回复
急哭了,求大佬

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧