VC6.0 用API创建窗体

 

以下是代码,仅供参考,不能直接使用

头文件.h

#include "windows.h"
#include "windowsx.h"

源文件.cpp

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int iShow)
{
    MSG iMsg;                        //定义windows消息

    if (!hPrevInstance && !WinInit(hInstance,iShow))
        return FALSE;

    pWindow->SetInstance(hInstance);
    for(;;)
    {
        if(PeekMessage(&iMsg,NULL,0,0,PM_NOREMOVE))
        {
            if(!GetMessage(&iMsg,NULL,0,0))
                return iMsg.wParam;

            TranslateMessage(&iMsg);
            DispatchMessage(&iMsg);
        }
        else
            WaitMessage();
    }
}
HWND WinInit(HINSTANCE hInstance, int iShow)
{
    WNDCLASS wc;                                //定义窗口
    char* szAppName = "windows api App";        //定义程序名称
    char* szAppTitle = "windows api App";            //定义窗口标题

    //给窗口属性赋值
    wc.style = CS_HREDRAW|CS_VREDRAW;            //定义窗口风格
    wc.lpfnWndProc = WndProc;                    //消息处理
    wc.cbWndExtra = 0;
    wc.cbClsExtra = 0;
    wc.hInstance = hInstance;                    //指定义窗口应用程序的句柄
    wc.hCursor = LoadCursor(NULL,IDI_APPLICATION);
    wc.hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));    //加载图标
    wc.hbrBackground = (HBRUSH)COLOR_WINDOW;                    //设置窗口背景色
    wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU);                //设置窗口菜单
    wc.lpszClassName = szAppName;                //设置窗口类名
    if(RegisterClass(&wc))                            //注册窗口
    {
    //建立窗口
        HWND ghWnd = CreateWindow(szAppName,            //注册窗口类名
                        szAppTitle,            //设置窗口标题
                        WS_OVERLAPPEDWINDOW,    //设置窗口风格
                        0,                    //设置窗口x坐标
                        0,                    //设置窗口y坐标
                        300,                //设置窗口宽度
                        200,                //设置窗口高度
                        NULL,                //父窗口句柄
                        NULL,                //菜单句柄
                        hInstance,            //程序实例句柄
                        &iShow);
        ShowWindow(ghWnd,iShow);        //显示窗口
        return ghWnd;
        
    }
    else
    {
        return 0;
    }
    
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
    switch(iMsg)
    {
    case WM_CLOSE:
    case WM_DESTROY:
    default:
        return DefWindowProc(hWnd,iMsg,wParam,lParam);
    }
    return false;
}

 

posted @ 2012-06-09 17:41  Jawn  阅读(400)  评论(0编辑  收藏  举报