中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 综合文章
Windows窗口框架(API入门一)
作者:未知 时间:2005-06-16 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无

#include <windows.h>
#include <stdlib.h>
#include <string.h>

//声明函数
//////////////////////////////////////////////////////////////////
long WINAPI WndProc                                //消息处理函数
            (
            HWND hWnd,
            UINT iMessage,
            UINT wParam,
            LONG lParam
            );
BOOL InitWindowsClass(HINSTANCE hInstance);         //初始化窗口类
BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);//初始化窗口
///////////////////////////////////////////////////////////////////
HWND hWndMain;


int WINAPI WinMain (                            //主函数
                    HINSTANCE hInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine,
                    int nCmdShow
                    )

{
    MSG Message;
    if(!InitWindowsClass(hInstance))
       return FALSE;
    if(!InitWindows(hInstance, nCmdShow))
       return FALSE;
    while(GetMessage(&Message,0,0,0))//消息循环
    {
        TranslateMessage(&Message);
        DispatchMessage(&Message);
    }
    return Message.wParam;
}


//定义函数
///////////////////////////////////////////////////////////////////
long WINAPI WndProc(
                    HWND hWnd,
                    UINT iMessage,
                    UINT wParam,
                    LONG lParam
                    )
{
    HDC hDC;
    HBRUSH hBrush;
    HPEN hPen;
    PAINTSTRUCT PtStr;
    POINT points[6]={{100,212},{70,227},{70,250},{130,250},{130,227},{100,212}};
   
    switch(iMessage)
    {
        case WM_PAINT:
            hDC=BeginPaint(hWnd,&PtStr);
            hPen=(HPEN)GetStockObject(NULL_PEN);
            SelectObject(hDC,hPen);
            hBrush=(HBRUSH)GetStockObject(BLACK_BRUSH);
            SelectObject(hDC,hBrush);
            LineTo(hDC,50,50);
            DeleteObject(hPen);
            hPen=CreatePen(PS_SOLID,2,RGB(255,0,0));
            SelectObject(hDC,hPen);
           
            LineTo(hDC,150,50);
            LineTo(hDC,100,137);
            LineTo(hDC,50,50);
            Polyline(hDC,points,6);
            Arc(hDC,63,137,138,212,100,137,100,137);
            Pie(hDC,213,137,288,212,240,137,260,137);
            Rectangle(hDC,213,212,287,250);
            RoundRect(hDC,213,100,287,137,20,20);
            DeleteObject(hPen);
            DeleteObject(hBrush);
            EndPaint(hWnd,&PtStr);
            return 0;
        case WM_DESTROY:
            PostQuitMessage(0);
                 return 0;
            default:
                 return(DefWindowProc(hWnd,iMessage,wParam,lParam));
                
           
    }
}


BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{
    HWND hWnd;
    hWnd=CreateWindow("WinFill",    //窗口类名
                     "填充示例",    //窗口实例的标题名
                     WS_OVERLAPPEDWINDOW, //窗口风格
                     CW_USEDEFAULT, //窗口左上角坐标为默认值
                     0,
                     CW_USEDEFAULT, //窗口的高为默认值
                     0,             //宽
                     NULL,          //无父窗口
                     NULL,          //无主菜单
                     hInstance,     //创建此窗口的应用程序的当前句柄
                     NULL           //不使用该值 
                     );
    if(!hWnd)
       return FALSE;
   // hWndMain=hWnd;
   
    ShowWindow(hWnd,nCmdShow); //显示窗口
    UpdateWindow(hWnd); //绘制用户区
    return TRUE;
                    
}


BOOL InitWindowsClass(HINSTANCE hInstance)
{
    WNDCLASS WndClass;
    WndClass.cbClsExtra=0;
    WndClass.cbWndExtra=0;
    WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
    WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
    WndClass.hIcon=LoadIcon(NULL,"END");
    WndClass.hInstance=hInstance;
    WndClass.lpfnWndProc=WndProc;
    WndClass.lpszClassName="WinFill";
    WndClass.lpszMenuName=NULL;
    WndClass.style=CS_HREDRAW|CS_VREDRAW;
    return RegisterClass(&WndClass);
   
}

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有