XFC演示-使用C语言通过WinAPI函数编写Windows程序

来源:互联网 发布:中国网络暴力第一案 编辑:程序博客网 时间:2024/05/17 01:59

XFC演示-使用C语言通过WinAPI函数编写Windows程序


1,目标效果:



2,代码片段:

winMain.c

/*!    \file    winMain.c    \version    v1.00    \date    10/19/2014 20:26:19*/#define __WINMAIN_C__/*********************************** START ************************************/#include "all.h"int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,                   PSTR szCmdLine, int iCmdShow){HANDLE hAccel;    MSG msg;    HWND hwnd, hDlg;DWORD dwStyle;    dwStyle = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | 640;    hwnd = XFC_MainFrame_Create(hInstance, IDR_MAINFRAME, dwStyle, XFC_MESSAGE_MAP(frameMain));    if (!hwnd)    {        return 0;    }hAccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDR_MAINFRAME));InitCommonControls();#if 1    hDlg = XFC_FormView_Create(hInstance, IDD_FORMVIEW, hwnd, XFC_MESSAGE_MAP(formView));    if (!hDlg)    {        return 0;    }    ShowWindow(hDlg, SW_SHOW);    UpdateWindow(hDlg);#endif    ShowWindow(hwnd, SW_SHOW);    UpdateWindow(hwnd);    while (GetMessage(&msg, NULL, 0, 0))    {if (!TranslateAccelerator(msg.hwnd, hAccel, &msg)){TranslateMessage(&msg);DispatchMessage(&msg);}    }    return msg.wParam;}/************************************ END *************************************/#undef __WINMAIN_C__

frameMain.c

/*!    \file    frameMain.c    \version    v1.00    \date    10/19/2014 20:26:30*/#define __FRAMEMAIN_C__/*********************************** START ************************************/#include "all.h"LRESULT CALLBACK frameMain_On_WM_CREATE(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    //HInstance = ((LPCREATESTRUCT)lParam)->hInstance;    return 0;}LRESULT CALLBACK frameMain_On_WM_COMMAND(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    switch (LOWORD(wParam))    {    case ID_APP_EXIT:        SendMessage(hwnd, WM_CLOSE, 0, 0);        return 0;    case ID_APP_ABOUT:XFC_Dialog_Create(_hInstance, IDD_ABOUTBOX, hwnd, XFC_MESSAGE_MAP(dlgAbout));        return 0;    }    return 0;}LRESULT CALLBACK frameMain_On_WM_PAINT(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    PAINTSTRUCT ps;    BeginPaint(hwnd, &ps);    EndPaint(hwnd, &ps);    return 0;}LRESULT CALLBACK frameMain_On_WM_CLOSE(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    DestroyWindow(hwnd);    return 0;}LRESULT CALLBACK frameMain_On_WM_DESTROY(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    PostQuitMessage(0);    return 0;}LRESULT CALLBACK frameMain_On_WM_ERASEBKGND(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    return TRUE;}BEGIN_XFC_MESSAGE_MAP(frameMain)ON_XFC_MESSAGEF(WM_CREATE,frameMain_On_WM_CREATE)ON_XFC_MESSAGEF(WM_COMMAND,frameMain_On_WM_COMMAND)ON_XFC_MESSAGEF(WM_PAINT,frameMain_On_WM_PAINT)ON_XFC_MESSAGEF(WM_CLOSE,frameMain_On_WM_CLOSE)ON_XFC_MESSAGEF(WM_DESTROY,frameMain_On_WM_DESTROY)ON_XFC_MESSAGEF(WM_ERASEBKGND,frameMain_On_WM_ERASEBKGND)END_XFC_MESSAGE_MAP()/************************************ END *************************************/#undef __FRAMEMAIN_C__

formView.c

<pre name="code" class="cpp"><pre name="code" class="cpp">/*!    \file    formView.c    \version    v1.00    \date    10/19/2014 20:26:37*/#define __FORMVIEW_C__/*********************************** START ************************************/#define __XFC_PRINT__#include "all.h"LRESULT CALLBACK formView_On_IDC_LIST1(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    int nNotifyCode = HIWORD(wParam);    switch (nNotifyCode)    {    case LBN_SELCHANGE:    {        HWND hwndComboBox = GetDlgItem(hwnd, IDC_LIST1);        int index = XFC_ListBox_GetCurSel(hwndComboBox);        XFC_ListBox_GetText(hwndComboBox, index, _szBuffer);        XFC_Window_SetString(GetDlgItem(hwnd, IDC_EDIT_ListBox), _szBuffer);        XFC_PRINT4("IDC_LIST1::LBN_SELCHANGE:%08X, %d, %d, %08X", hwnd, message, wParam, lParam);        return TRUE;    }    case LBN_DBLCLK:    {        MessageBox(hwnd, TEXT("LBN_DBLCLK"), TEXT("formView_On_IDC_LIST1"), MB_OK);        return TRUE;    }    }    return 0;}LRESULT CALLBACK formView_On_IDC_COMBO1(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    int nNotifyCode = HIWORD(wParam);    switch (nNotifyCode)    {    case CBN_SELCHANGE:    {        HWND hwndComboBox = GetDlgItem(hwnd, IDC_COMBO1);        int index = XFC_ComboBox_GetCurSel(hwndComboBox);        XFC_ComboBox_GetLBText(hwndComboBox, index, _szBuffer);        XFC_Window_SetString(GetDlgItem(hwnd, IDC_STATIC_ComboBox), _szBuffer);        XFC_PRINT4("IDC_COMBO1::CBN_SELCHANGE:%08X, %d, %d, %08X", hwnd, message, wParam, lParam);        return TRUE;    }    }    return 0;}LRESULT CALLBACK formView_On_WM_TIMER(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    switch (wParam)    {    case IDC_PROGRESS1:    {        XFC_Progress_StepIt(GetDlgItem(hwnd, IDC_PROGRESS1));        break;    }    default:        break;    }    return 0;}LRESULT CALLBACK formView_On_WM_INITDIALOG(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    XFC_Edit_SetInt(GetDlgItem(hwnd, IDC_EDIT1), 100);    XFC_Edit_SetInt(GetDlgItem(hwnd, IDC_EDIT2), 200);    XFC_Edit_SetInt(GetDlgItem(hwnd, IDC_EDIT3), 0);    XFC_Check_SetInt(GetDlgItem(hwnd, IDC_CHECK1), 1);    XFC_Check_SetInt(GetDlgItem(hwnd, IDC_CHECK2), 1);    XFC_Check_SetInt(GetDlgItem(hwnd, IDC_CHECK3), 1);    XFC_Radio_SetIntByID(hwnd, IDC_RADIO0, 6/*(IDC_RADIO6-IDC_RADIO0)*/, 0);    XFC_Edit_SetString(GetDlgItem(hwnd, IDC_EDIT_ListBox), TEXT("中文字符串 - Englsh String"));    XFC_ListBox_AddString(GetDlgItem(hwnd, IDC_LIST1), TEXT("XFC_ListBox_ResetContent"));    XFC_ListBox_AddString(GetDlgItem(hwnd, IDC_LIST1), TEXT("XFC_ListBox_AddString"));    XFC_ListBox_AddString(GetDlgItem(hwnd, IDC_LIST1), TEXT("XFC_ListBox_GetCurSel"));    XFC_ListBox_AddString(GetDlgItem(hwnd, IDC_LIST1), TEXT("XFC_ListBox_SetCurSel"));    XFC_ListBox_AddString(GetDlgItem(hwnd, IDC_LIST1), TEXT("XFC_ListBox_DeleteString"));    XFC_ListBox_AddString(GetDlgItem(hwnd, IDC_LIST1), TEXT("XFC_ListBox_GetText"));    XFC_ListBox_AddString(GetDlgItem(hwnd, IDC_LIST1), TEXT("XFC_ListBox_GetTextLen"));    XFC_ListBox_AddString(GetDlgItem(hwnd, IDC_LIST1), TEXT("XFC_ListBox_GetCount"));    XFC_ListBox_SetCurSel(GetDlgItem(hwnd, IDC_LIST1), 0);    XFC_Window_SetString(GetDlgItem(hwnd, IDC_STATIC_ComboBox), TEXT("中文字符串 - Englsh String"));    XFC_ComboBox_AddString(GetDlgItem(hwnd, IDC_COMBO1), TEXT("XFC_ComboBox_ResetContent"));    XFC_ComboBox_AddString(GetDlgItem(hwnd, IDC_COMBO1), TEXT("XFC_ComboBox_AddString"));    XFC_ComboBox_AddString(GetDlgItem(hwnd, IDC_COMBO1), TEXT("XFC_ComboBox_GetCurSel"));    XFC_ComboBox_AddString(GetDlgItem(hwnd, IDC_COMBO1), TEXT("XFC_ComboBox_SetCurSel"));    XFC_ComboBox_AddString(GetDlgItem(hwnd, IDC_COMBO1), TEXT("XFC_ComboBox_DeleteString"));    XFC_ComboBox_AddString(GetDlgItem(hwnd, IDC_COMBO1), TEXT("XFC_ComboBox_GetLBText"));    XFC_ComboBox_AddString(GetDlgItem(hwnd, IDC_COMBO1), TEXT("XFC_ComboBox_GetLBTextLen"));    XFC_ComboBox_AddString(GetDlgItem(hwnd, IDC_COMBO1), TEXT("XFC_ComboBox_GetCount"));    XFC_ComboBox_SetCurSel(GetDlgItem(hwnd, IDC_COMBO1), 0);    return 0;}LRESULT CALLBACK formView_On_WM_COMMAND(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    int nID         = LOWORD(wParam);    static TCHAR szFileName[MAX_PATH];    static TCHAR szTitleName[MAX_PATH];    static TCHAR szFilter[] = TEXT("Text Files (*.TXT)\0*.txt\0")  \                              TEXT("All Files (*.*)\0*.*\0\0") ;    static TCHAR szFolderName[MAX_PATH];    switch (nID)    {    case IDC_BUTTON_Calculate:    {        int i1, i2, i3;        i1 = XFC_Edit_GetInt(GetDlgItem(hwnd, IDC_EDIT1));        XFC_PRINT1("%d", i1);        i2 = XFC_Edit_GetInt(GetDlgItem(hwnd, IDC_EDIT2));        XFC_PRINT1("%d", i2);        i3 = i1 + i2;        XFC_Edit_SetInt(GetDlgItem(hwnd, IDC_EDIT3), i3);        XFC_PRINT1("%d", i3);        return TRUE;    }    case IDC_BUTTON_Start:    {        static BOOL flag = FALSE;        HWND hwndProgress = GetDlgItem(hwnd, IDC_PROGRESS1);        XFC_Progress_SetRange32(hwndProgress, 0, 100);        XFD_Progress_SetStep(hwndProgress, 10);        XFC_Progress_SetPos(hwndProgress, 0);        if (!flag)        {            SetTimer(hwnd, IDC_PROGRESS1, 300, NULL);            flag = TRUE;            XFC_Window_SetString(GetDlgItem(hwnd, IDC_BUTTON_Start), TEXT("停止"));        }        else        {            KillTimer(hwnd, IDC_PROGRESS1);            flag = FALSE;            XFC_Window_SetString(GetDlgItem(hwnd, IDC_BUTTON_Start), TEXT("开始"));        }        return TRUE;    }    case IDC_BUTTON_Count:    {        int i;        TCHAR szTemp[MAX_BUFFERSTRING] = "";        i = XFC_Radio_GetIntByID(hwnd, IDC_RADIO0, (IDC_RADIO6 - IDC_RADIO0));        XFC_Window_GetString(GetDlgItem(hwnd, (IDC_RADIO0 + i)));        lstrcat(szTemp, _szBuffer);        lstrcat(szTemp, TEXT(": "));        for (i = IDC_CHECK1; i <= IDC_CHECK5; i++)        {            if (XFC_Check_GetInt(GetDlgItem(hwnd, i)))            {                lstrcat(szTemp, XFC_Window_GetString(GetDlgItem(hwnd, i)));                lstrcat(szTemp, TEXT(", "));            }        }        XFC_Edit_SetString(GetDlgItem(hwnd, IDC_EDIT_Result), szTemp);        return TRUE;    }    case IDC_BUTTON_Open:    {        XFC_PopFileInitialize(hwnd, NULL, szFilter);        XFC_PopFileOpenDlg(hwnd, szFileName, szTitleName);        XFC_Edit_SetString(GetDlgItem(hwnd, IDC_EDIT_FilePath), szFileName);        return TRUE;    }    case IDC_BUTTON_Save:    {        XFC_PopFileInitialize(hwnd, NULL, szFilter);        XFC_PopFileSaveDlg(hwnd, szFileName, szTitleName);        XFC_Edit_SetString(GetDlgItem(hwnd, IDC_EDIT_FilePath), szFileName);        return TRUE;    }    case IDC_BUTTON_Browse:    {        XFC_PopFolderInitialize(hwnd, NULL, TEXT("请选择一个目录"));        XFC_PopFolderOpenDlg(hwnd, szFolderName, szTitleName);        XFC_Edit_SetString(GetDlgItem(hwnd, IDC_EDIT_FolderPath), szFolderName);        return TRUE;    }    case IDC_BUTTON_Add:    {        int count;        XFC_Edit_GetString(GetDlgItem(hwnd, IDC_EDIT_ListBox));        XFC_ListBox_AddString(GetDlgItem(hwnd, IDC_LIST1), _szBuffer);        count = XFC_ListBox_GetCount(GetDlgItem(hwnd, IDC_LIST1));        XFC_ListBox_SetCurSel(GetDlgItem(hwnd, IDC_LIST1), count - 1);        return TRUE;    }    case IDC_BUTTON_Del:    {        int index;        index = XFC_ListBox_GetCurSel(GetDlgItem(hwnd, IDC_LIST1));        if (index != LB_ERR)        {            XFC_ListBox_DeleteString((GetDlgItem(hwnd, IDC_LIST1)), index);        }        return TRUE;    }    case IDC_BUTTON_Clear:    {        XFC_ListBox_ResetContent((GetDlgItem(hwnd, IDC_LIST1)));        return TRUE;    }    case IDC_COMBO1:    {        return formView_On_IDC_COMBO1(hwnd, message, wParam, lParam);    }    case IDC_LIST1:    {        return formView_On_IDC_LIST1(hwnd, message, wParam, lParam);    }    }    return FALSE;}BEGIN_XFC_MESSAGE_MAP(formView)ON_XFC_MESSAGEF(WM_INITDIALOG, formView_On_WM_INITDIALOG)ON_XFC_MESSAGEF(WM_COMMAND, formView_On_WM_COMMAND)ON_XFC_MESSAGEF(WM_TIMER, formView_On_WM_TIMER)END_XFC_MESSAGE_MAP()/************************************ END *************************************/#undef __FORMVIEW_C__


dlgAbout.c

/*!    \file    dlgAbout.c    \version    v1.00    \date    10/19/2014 20:26:51*/#define __DLGABOUT_C__/*********************************** START ************************************/#include "all.h"LRESULT CALLBACK dlgAbout_On_WM_INITDIALOG(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    return 0;}LRESULT CALLBACK dlgAbout_On_WM_COMMAND(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    switch (LOWORD(wParam))    {    case IDOK:        EndDialog(hwnd, TRUE);        return TRUE;    case IDCANCEL:        EndDialog(hwnd, FALSE);        return TRUE;    }    return 0;}BEGIN_XFC_MESSAGE_MAP(dlgAbout)ON_XFC_MESSAGEF(WM_INITDIALOG, dlgAbout_On_WM_INITDIALOG)ON_XFC_MESSAGEF(WM_COMMAND, dlgAbout_On_WM_COMMAND)END_XFC_MESSAGE_MAP()/************************************ END *************************************/#undef __DLGABOUT_C__


0 0
原创粉丝点击