注册 登录
编程论坛 VC++/MFC

新手学习窗口,请不吝赐教

snfge258008 发布于 2011-03-19 16:04, 364 次点击
这是创建窗口的简单代码,编译能通过,但为什么不能运行呢?请各位帮看看,谢谢了,新手,望不吝赐教。
#include<windows.h>
#include<string.h>
#include<stdlib.h>
//using namespace windows;
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);
//以下初始化窗口类
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR IpszCmdLine,int nCmdShow)
{
    MSG msg;
    if(!InitWindowsClass(hInstance))
        return FALSE;
    if(!InitWindows(hInstance,nCmdShow))
        return FALSE;
   
    //创建窗口
  
    while(GetMessage(&msg,NULL,0,0))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    return msg.wParam;
}
//窗口函数
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lparam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lparam);
}
return 0;
}
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{
    HWND hwnd;
    hwnd=CreateWindow("窗口",
        "My_Windows",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        NULL,
        NULL,
        hInstance,
        NULL);
    if(!hwnd) return FALSE;
    ShowWindow(hwnd,nCmdShow);
    UpdateWindow(hwnd);
    return TRUE;

}
BOOL InitWindowsClass(HINSTANCE hInstance)
{
    WNDCLASS wc;
    wc.style = 0;
    wc.lpfnWndProc = (WNDPROC)WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon(hInstance,IDI_APPLICATION);
    wc.hCursor = LoadCursor(hInstance, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH+3);//(COLOR_WINDOW+1);
    wc.lpszMenuName = NULL;
    wc.lpszClassName ="窗口";
    return RegisterClass(&wc);
}
3 回复
#2
zhangkaifei2011-03-19 16:32
Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: [Project] --> [Settings] --> 选择"Link"属性页, 在Project Options中将/subsystem:console改成/subsystem:windows   
#3
snfge2580082011-03-19 18:01
回复 2楼 zhangkaifei
不好意思,我没有找到你说的那项啊,能不能说的再明确点,我用的是VC++6.0
#4
玩出来的代码2011-03-19 23:24
怎么不能运行了,如果是系统设置的话,那就是2楼所说的了。代码没问题的。VC6貌似没有改子系统的设置。你新建一个工程选择Win32 Application就行了。
1