Windows C图形程序设计模板

#include <windows.h>
#include <windowsx.h>
#include <stdio.h>

LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ) ;
int x,y,width,height
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow )
{
    static TCHAR szAppName[] = TEXT( "iso8583unpacktools" ) ;
    HWND        hwnd ;    //用来保存成功创建窗口后返回的句柄
    MSG         msg ;     //定义消息结构体变量
    WNDCLASS    wndclass ;//窗体类


    wndclass.lpfnWndProc      = WndProc ;                  //窗口处理函数
    wndclass.style            = CS_HREDRAW | CS_VREDRAW ;  //窗口类型
    wndclass.hInstance        = hInstance ;                //实例句柄
    wndclass.cbClsExtra       = 0 ;                        //窗口扩展
    wndclass.cbWndExtra       = 0 ;                        //窗口实例扩展
    wndclass.hbrBackground    = (HBRUSH) GetStockObject(WHITE_BRUSH) ;  //窗口背景色
    wndclass.hCursor          = LoadCursor( NULL, IDC_ARROW ) ;         //窗口鼠标光标
    //wndclass.hIcon            = LoadIcon( NULL, IDI_APPLICATION ) ;     //窗口最小化图标
    wndclass.hIcon            = (HICON)LoadImage(NULL,"iso8583unpack.ico",IMAGE_ICON,0,0,LR_LOADFROMFILE);
    wndclass.lpszClassName    = szAppName ;                             //窗口类名
    wndclass.lpszMenuName     = NULL ;                                  //窗口菜单 

    if( !RegisterClass(&wndclass) )
    {
        MessageBox( NULL, TEXT("无法注册窗口类!"), TEXT("错误"), MB_OK | MB_ICONERROR ) ;
        return 0 ;
    }
    //获取屏幕信息
    x=GetSystemMetrics(SM_CXSCREEN);
    height=GetSystemMetrics(SM_CYSCREEN)-40;
    width=600;
    x=(x-width)/2;
    y=0;
    //创建窗体API
    hwnd = CreateWindow( szAppName, 
        TEXT("中国银联数据ISO8583报文解析工具V1.0"), 
        WS_OVERLAPPEDWINDOW,
        x,//CW_USEDEFAULT, 
        y,//CW_USEDEFAULT,
        width,//CW_USEDEFAULT, 
        height,//CW_USEDEFAULT,
        NULL, 
        NULL, 
        hInstance,
        NULL ) ;
    //显示窗体的API 传入需要显示的窗体句柄和显示方式
    ShowWindow( hwnd, iCmdShow ) ;
    //刷新窗体的API
    UpdateWindow( hwnd ) ;
    //从系统的应用程序线程消息队列中取得一个消息

    //读配置文件bitmap.ini
    LoadIsoBitMap();

    while( GetMessage(&msg, NULL, 0, 0) )
    {
        TranslateMessage( &msg ) ;
        DispatchMessage( &msg ) ;
    }

    return msg.wParam ;
}

LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{

    static HWND hwndInput ;
    static HWND hwndOutput ;
    static HWND hwndButton ;
    static HWND hwndButtonclr ;
    TCHAR InBuf[4000];
    TCHAR OutBuf[5000];
    TCHAR buf[4000];

    memset(InBuf,0,sizeof(InBuf));
    memset(OutBuf,0,sizeof(OutBuf));
    memset(buf,0,sizeof(buf));
    switch( message )
    {
    case WM_CREATE:
        //输入编辑框
        hwndInput = CreateWindow( TEXT("edit"), TEXT("十六进制报文输入"),
            WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | WS_BORDER |
            ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL,
            10, 10, width-25, 100,
            hwnd, (HMENU)1, ((LPCREATESTRUCT) lParam) -> hInstance, NULL ) ;
        //输出编辑框只读模式
        hwndOutput = CreateWindow( TEXT("edit"), TEXT("结果输出"),
            WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | WS_BORDER |
            ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL|ES_READONLY,
            10, 150, width-25, height-190,
            hwnd, (HMENU)1, ((LPCREATESTRUCT) lParam) -> hInstance, NULL ) ;
        //Edit_Enable(hwndOutput,FALSE);
        //提交按钮创建
        hwndButton = CreateWindow( TEXT("button"), TEXT ("解析"),
            WS_CHILD | WS_VISIBLE |BS_PUSHBUTTON,
            150, 115, 100, 30,
            hwnd, (HMENU)1, ((LPCREATESTRUCT) lParam) -> hInstance, NULL ) ;
        //清屏按钮
        hwndButtonclr = CreateWindow( TEXT("button"), TEXT ("清屏"),
            WS_CHILD | WS_VISIBLE |BS_PUSHBUTTON,
            350, 115, 100, 30,
            hwnd, (HMENU)1, ((LPCREATESTRUCT) lParam) -> hInstance, NULL ) ;

        return 0 ;
    case WM_COMMAND://响应按钮消息
        if((HWND)lParam == hwndButton)
        {
            //获取输入框内容,想从键盘得到的数据可以从这里获得
            GetWindowText(hwndInput,InBuf,sizeof(InBuf));
    //功能实现
    //将结果显示在输出框
            SetWindowText(hwndOutput,OutBuf);
        }
        if((HWND)lParam == hwndButtonclr)
        {
            SetWindowText(hwndInput,InBuf);
            SetWindowText(hwndOutput,OutBuf);
        }

        return 0 ;
    case WM_CLOSE: //关闭
        if(IDYES==MessageBox(hwnd,"是否关闭程序?","提示",MB_YESNO|MB_ICONQUESTION))
        {
            DestroyWindow (hwnd);   
        }
        return 0;
    case WM_DESTROY:
        PostQuitMessage(0) ;
        return 0 ;
    }

    return DefWindowProc( hwnd, message, wParam, lParam ) ;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值