搜索
bottom↓
回复: 2

VS2010求助

[复制链接]

出0入0汤圆

发表于 2010-10-7 18:13:22 | 显示全部楼层 |阅读模式
我刚开始学MFC,写了一个简单的MFC,程序编译没有错误,可是为什么看不到显示界面呢?应该怎样设置,才能看到运行结果?
#include"windows.h"
#include"stdafx.h"
#include<cstdlib>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
int WINAPI WinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                                   LPSTR lpCmdline,
                                   int nCmdShow)
{
        WNDCLASS wcApp;
        MSG msg;
        HWND ghWnd=NULL;
        char *  szAppName="Windows Api Application";
        char * szAppTitle="Windows API 窗口程序";
        wcApp.style=CS_HREDRAW;
        wcApp.lpfnWndProc=WndProc;
        wcApp.cbClsExtra=0;
        wcApp.hInstance=hInstance;
        wcApp.hIcon=LoadIcon(NULL,IDI_WINLOGO);
        wcApp.hCursor=LoadCursor(NULL,IDC_ARROW);
        wcApp.hbrBackground=(HBRUSH)COLOR_ACTIVEBORDER;
        wcApp.lpszMenuName=NULL;
        wcApp.lpszClassName=szAppName;
        RegisterClass(&wcApp);
        ghWnd=CreateWindow(szAppName,
                               szAppTitle,
                                           WS_OVERLAPPEDWINDOW,
                                           100,
                                           100,
                                           350,
                                           300,
                                           NULL,
                                           NULL,
                                           hInstance,
                                           NULL);

        if(NULL==ghWnd)
                return 0;
        ShowWindow(ghWnd,nCmdShow);
        UpdateWindow(ghWnd);
        while(GetMessage(&msg,NULL,0,0));
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
       
        return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,
                             UINT message,
                                                 WPARAM wParam,
                                                 LPARAM lParam)
{
        char* msgCreate="收到WM_CREATE消息,建立窗口";
        char* msgDestroy="收到WM_DESTROUY消息,窗口关闭";
        char* msgCaption="收到消息";
        char*  msgLBTN="鼠标左键按下,收到WM_LBUTTONDOWN消息";
        switch(message)
        {
        case WM_CREATE:
                MessageBox(GetFocus(),msgCreate,msgCaption,MB_OK|MB_ICONEXCLAMATION);
                break;
        case WM_LBUTTONDOWN:
                MessageBox(GetFocus(),msgLBTN,msgCaption,MB_OK|MB_ICONINFORMATION);
                break;
        case WM_DESTROY:
                MessageBox(GetFocus(),msgDestroy,msgCaption,MB_OK|MB_ICONHAND);
                PostQuitMessage(0);
                break;
        default:
               
                return DefWindowProc(hwnd,message,wParam,lParam);
        }
        system("pause");
        return FALSE;
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2010-10-7 22:05:22 | 显示全部楼层
WNDCLASS wcApp = { 0 };

or

WNDCLASS wcApp;
memset(&wcApp, 0, sizeof(wcApp));

还有你实在太强大了,往WndProc里放阻塞的system()... 还有MessageBox()...,尤其是你那个system(),放得位置太销魂了,程序收到WM_CREATE之后就会阻塞在那里了。。。
用好调试功能。。。 不用调试也可以用 OutputDebugString()

出0入0汤圆

 楼主| 发表于 2010-10-8 13:12:08 | 显示全部楼层
谢谢,受益匪浅
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 15:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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