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
- XFC演示-使用C语言通过WinAPI函数编写Windows程序
- C/C++使用WinAPI CreateProcess函数调用外部程序
- C语言中的一些winapi函数!
- C语言编写Windows服务程序。
- 用C语言编写Windows服务程序
- 用 C 语言编写 Windows 服务程序
- 用C语言编写Windows服务程序
- C语言编写Windows服务程序
- C语言编写Windows服务程序
- 用C语言编写windows服务程序
- C语言Windows服务程序编写-ServiceMain
- C 语言标准 I/O 函数介绍以及演示程序
- 使用c语言编写cgi程序
- 使用c语言编写cgi程序
- windows环境C语言修改系统时间-WinAPI总结
- C语言程序编写
- C语言程序编写
- C++编写Windows服务程序 用 C 语言编写 Windows 服务程序的五个步骤
- ContentProvider(内容提供者)
- week plan: 2014.11.8-1014.11.15
- Objective-C学习笔记-之NSLog()
- hdu4431 枚举+模拟
- C# 实现简单的栈
- XFC演示-使用C语言通过WinAPI函数编写Windows程序
- 复制VirtualBox中的虚拟机
- mysql 中的tinyint 数据类型
- [Code Wars] Array Appender
- LeetCode Gas Station
- css伪类
- Java的内存机制 String str = "abc" 和String str = new String("abc")的区别
- 软件开发V模型
- 一些工具的安装(git,clapack)