窗口类应用程序已经编译成功,为什么显示一直在连接,就是没有界面出来,是什么问题

问题描述

窗口类应用程序已经编译成功,为什么显示一直在连接,就是没有界面出来,是什么问题
 #include<windows.h>
#include<stdio.h>
//声明窗口过程函数
LRESULT CALLBACK WinSunProc(
 HWND hwnd,
 UINT uMsg,
 WPARAM wParam,
 LPARAM lParam
 );
//编写WinMain函数
int WINAPI WinMain
(
 HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 LPSTR lpCmdLine,
 int nCmdShow
 )//注意没有冒号
{
    //设计窗口类,给所有成员赋值
    WNDCLASS wndcls;//WNDCLASS 为窗口类名,wndcls为窗口类对象,接下来为WNDCLASS里的每一个成员赋值
    wndcls.cbWndExtra =0;
    wndcls.cbClsExtra=0;
    wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);//用GetStockObject这个函数从库里选择一个黑色的现成的黑色画刷
    wndcls.hCursor =LoadCursor(NULL,IDI_ERROR);//用这个函数从库里获取一个图标,前参数为句柄,后者是句柄类型
    wndcls.hInstance =hInstance;//WinMain函数里有个当前应用程序句柄,当调用WinMain函数是,它就会传过来一个应用程序句柄
    wndcls.lpfnWndProc =WinSunProc;//将窗口过程函数的名字赋给他,因为函数的名字就是一个指针(地址),注意不是窗口类的名字
    wndcls.lpszClassName ="liquanfu2009";
    wndcls.lpszMenuName =NULL;
    wndcls.style =CS_HREDRAW|CS_VREDRAW;
    //注册窗口类
    RegisterClass(&wndcls);//用RegisterClass这个函数注册,将设计的窗口类的对象Wndcls的地址传给这个函数

    //创建窗口
    HWND hwnd;
    hwnd=CreateWindow("liquanfu2009","我的窗口",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);//WS_OVERLAPPWDWINDOW是要显示的窗口的样式

    //显示窗口
    ShowWindow(hwnd,SW_SHOWNORMAL);//SW_SHOWNORMAL是显示的方式
    //更新窗口
    UpdateWindow(hwnd);
    //消息循环
    MSG msg;
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;

}
        ///////////////
//窗口过程函数的定义
LRESULT CALLBACK WinSunProc
(
 HWND hwnd,
 UINT uMsg,
 WPARAM wParam,
 LPARAM lParam
 )
{
    switch(uMsg)
    {
    case WM_CHAR:
        char szChar[20];
        sprintf(szChar,"char code is %d",wParam);//第一个szChar 是指对这个数组进行格式化,然后把WPARAM这个东西格式化它
        MessageBox(hwnd,szChar,"char",0);//弹出消息框,有四个参数,这个消息框函数用于输出字符数组的内容输出,由平台SDK提供函数,第一个参数是要显示的窗口句柄,第二个是输出内容,三是消息的标题,四是输出的样式
        break;
    case WM_LBUTTONDOWN://鼠标左键的按下的消息
        MessageBox(hwnd,"mouse clicked","message",0);
        HDC hdc;//用HDC结构体定义一个对象
        hdc=GetDC(hwnd);//返回一个HDC对象
        TextOut(hdc,0,50,"My window",strlen("My window"));//调用这个函数在窗口输出内容,参数一是HDC对象,二和三是显示的位置,四是内容,五是内容的长度
        //获取DC后要释放DC
        ReleaseDC(hwnd,hdc);
        break;
    case WM_PAINT://
        HDC hDC;//定义对象
        PAINTSTRUCT ps;//定义对象
        hDC=BeginPaint(hwnd,&ps);//返回值是hDC,这个函数只能在相应WH_PAINT类消息中使用,和下面的EndPaint配套使用
        TextOut(hDC,0,0,"My program",strlen("My program"));
        EndPaint(hwnd,&ps);
    case WM_CLOSE://关闭窗口的消息
        if(IDYES==MessageBox(hwnd,"do you quit?","message",MB_YESNO))//MB_VESNO提供两个按钮,是和否,返回YES或NO
            DestroyWindow(hwnd);//当选择确定时消除窗口
        break;
    case WM_DESTROY://退出消息
        PostQuitMessage(0);//向应用程序发出退出的消息
        break;
    default://都不是以上的消息类型
        return DefWindowProc(hwnd,uMsg,wParam,lParam);//调用默认的窗口过程函数

    }
    return 0;//结束整个函数
}

解决方案

代码是从哪里来的,如果是赋值粘贴来的,
wndcls.hCursor =LoadCursor(NULL,IDI_ERROR);
这里提到的那个图标资源,你的程序有么?

建议你用VC++的模板创建一个win32程序,再在它的基础上修改。

解决方案二:

vc rebuild重新编译。然后vc打一下sp

解决方案三:

删除中间文件重新编译,建议直接新建一个win32应用,里面有创建窗口的代码

解决方案四:

vc rebuild重新编译。然后vc打一下sp

时间: 2024-09-17 02:55:18

窗口类应用程序已经编译成功,为什么显示一直在连接,就是没有界面出来,是什么问题的相关文章

窗口被其他程序覆盖后,重新显示时不会重绘

问题描述 (MFC)注释掉窗口函数Onpaint中的CDialog::OnPaint();,当窗口被其他程序覆盖后,重新显示时不会重绘,只显示空白窗口对话框,使用鼠标拖动一下,就恢复正常了,请高手指点应该怎么做啊. 解决方案 本帖最后由 hailinouc 于 2014-11-20 08:20:18 编辑

贪吃蛇程序VS2012编译成功

// libin.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<stdio.h> #include<windows.h> #include<time.h> #include<stdlib.h> struct Body//定义蛇身结构体 { short x,y;//蛇身结点的坐标 struct Body *next;//指向下一个结点的指针 }; /////////////////

调用C#编辑器 编译成功不显示结果

问题描述 本人初学C#跟着书本说的调用.NETFramk运行成功但是没显示结果空白一片求问是什么回事 解决方案 解决方案二:你在cs文件所在的目录里和csc.exe所在的目录找下有没编译好的exe解决方案三:C:C#和CSC.exe所在文件夹上都没有解决方案四:[img=http://i4.xlpan.kanimg.com/img?ui=124422474&g=E9780A675251238748CC67688557348F7AD68969&n=77152865-7aac-43d8-931

char-二叉树的创建和遍历,编译成功了不知道在运行窗口输入什么。大神帮我看看

问题描述 二叉树的创建和遍历,编译成功了不知道在运行窗口输入什么.大神帮我看看 //***********先序建立二叉树中的节点 ****************** void CreatBiTree(BiTree *T) { char ch; fflush(stdin); if((ch = getchar()) == 'n') *T = NULL; else { (*T)=(BiTNode *)malloc(sizeof(BiTNode)); if(!(*T)) exit(1); (*T)->

应用程序框架设计(2):SW系统的窗口类

解释了消息分派机制后,接下来我们开始介绍WINX的窗口类.为了产生比较的效果,我决定从之前我写的"SW系统"的窗口类讲起.在你理解了SW系统的窗口类后,我们再来看6年后WINX中的窗口类在设计上发生了什么样的变化.--这自然也是我个人在窗口类观念上的改变. 1.SW系统的"Hello,World!"程序 #define Uses_SApp #include <sw.h> // SW系统中,你需要记住头文件只有 ,它是SW系统总控文件. // 你只需要告诉

c语言-我的这个程序在VS2010上可以编译成功,但是在VS2015上就不行,求指导啊,。。

问题描述 我的这个程序在VS2010上可以编译成功,但是在VS2015上就不行,求指导啊,.. #include #include struct student{ /* 学生结构体 / int num; char name[20]; char optional[2]; union{ float mark; / 百分制分数成员mark / char grade; / 五级制等级成员grade / }score; / 成绩共用体 / }; void main() { struct student s

编译成功后程序不能执行

问题描述 编译成功后程序不能执行 解决方案 不直接运行,调试模式下启动程序,看程序哪一行发生异常. 解决方案二: 平台问题,或者代码问题 解决方案三: 问题是否可以描述的更详细一点呢? 解决方案四: 鬼知道.估计程序也不是你写的,你上当受骗了. 解决方案五: 这问题描述的我也是醉了 解决方案六: 我觉得你是运行别人的代码,或者修改别人的代码吧.有可能是平台的问题.我遇到过,就是修改别人代码基础上,人家代码创建和开发的平台和我的不一样,后来我用相同的平台,就完全没问题了.不知道你是不是这个问题,仅

一个c++程序,编译没错。运行后出现错误 debug assertion failed

问题描述 一个c++程序,编译没错.运行后出现错误 debug assertion failed 具体错误如图 解决方案 VC++调程序出现如下错误: Debug Assertion Failed! Program: D:wyuStuddebugwyuStud.exe File: afx.inl Line:157 可能问题:1.野指针;2.内存泄露 解决方法: 1.看一看你的程序里是不是有ASSERT()或VERIFY()语句.这两个宏是用来测试它的参数是否为真的.出现你说的,这说明你的指针或表

Red Gate系列之五 .NET Reflector 7.6.1.824 Edition .NET程序反编译神器(附插件安装教程2012-10-13更新) 完全破解+使用教程

原文:Red Gate系列之五 .NET Reflector 7.6.1.824 Edition .NET程序反编译神器(附插件安装教程2012-10-13更新) 完全破解+使用教程   Red Gate系列之五 .NET Reflector 7.6.1.824 Edition .NET程序反编译神器(另附插件安装教程) 完全破解+使用教程 Red Gate系列文章: Red Gate系列之一 SQL Compare 10.2.0.1337 Edition 数据库比较工具 完全破解+使用教程 R