⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 VC界面类编程技巧大全附源码(DOC)
💻 C
字号:



////////////////////////////////////////////////////////////////////////////////////////////////////
// 说明: StyleAll
// 更新: 2003-2-14
////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////
// 预处理
#include <Windows.h>
#include <CommCtrl.h>
#include "Test.h"
#include "..\\ClassXP\\ClassXP.h"

#pragma warning(disable: 4311)
#pragma comment(lib, "ComCtl32.lib")

#ifdef _DEBUG
#pragma comment(lib, "..\\Debug\\ClassXP.lib")
#else // _DEBUG
#pragma comment(lib, "..\\Release\\ClassXP.lib")
#endif // _DEBUG
////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////
// 函数声明
LRESULT CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////
// 全局变量
BOOL bSetCurrent = FALSE;
BOOL bSetDialog = FALSE;
BOOL bSetThread = FALSE;
HMODULE hLibrary = NULL;
FARPROC pEnableClassXP = NULL;
////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////
// 入口函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow)
{
	InitCommonControls();
	DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIALOG_MAIN), NULL, (DLGPROC) MainDlgProc);
	return 0;
}
////////////////////////////////////////////////////////////////////////////////////////////////////




////////////////////////////////////////////////////////////////////////////////////////////////////
// 主窗口回调函数
LRESULT CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	HICON hIcon;
	char szFileName[MAX_PATH];
	OPENFILENAME OpenFileName;

	switch (uMsg)
	{
	case WM_INITDIALOG:
		hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON_MAIN));
		SetClassLong(hWnd, GCL_HICON, (LONG) hIcon);
		DeleteObject(hIcon);
		SendDlgItemMessage(hWnd, IDC_CHECK3, BM_SETCHECK, BST_CHECKED, 0);
		SendDlgItemMessage(hWnd, IDC_CHECK4, BM_SETCHECK, BST_INDETERMINATE, 0);
		SendDlgItemMessage(hWnd, IDC_COMBO1, CB_ADDSTRING, 0, (LPARAM) "很不错吧");
		SendDlgItemMessage(hWnd, IDC_COMBO1, CB_ADDSTRING, 0, (LPARAM) "项目二");
		SendDlgItemMessage(hWnd, IDC_COMBO1, CB_ADDSTRING, 0, (LPARAM) "项目一");
		SendDlgItemMessage(hWnd, IDC_COMBO1, CB_SETCURSEL, 0, 0);

		SendDlgItemMessage(hWnd, IDC_COMBO2, CB_ADDSTRING, 0, (LPARAM) "很好");
		SendDlgItemMessage(hWnd, IDC_COMBO2, CB_ADDSTRING, 0, (LPARAM) "不好");
		SendDlgItemMessage(hWnd, IDC_COMBO2, CB_ADDSTRING, 0, (LPARAM) "漂亮极了");
		SendDlgItemMessage(hWnd, IDC_COMBO2, CB_SETCURSEL, 0, 0);		
		break;

	case WM_COMMAND:
		if (HIWORD(wParam) == BN_CLICKED)
		{			
			switch (LOWORD(wParam))
			{
			case IDC_BUTTON1:
				MessageBox(0, "OK", 0, 0);
				break;

			case IDC_BUTTON_CURRENT:
				if (bSetCurrent == FALSE)
				{
					ClassXP(GetDlgItem(hWnd, IDC_BUTTON_CURRENT), TRUE);
					SetDlgItemText(hWnd, IDC_BUTTON_CURRENT, "取消当前按钮(&B)");
					bSetCurrent = TRUE;
				}
				else
				{
					ClassXP(GetDlgItem(hWnd, IDC_BUTTON_CURRENT), FALSE);
					SetDlgItemText(hWnd, IDC_BUTTON_CURRENT, "设置当前按钮(&B)");
					bSetCurrent = FALSE;
				}
				break;


			case IDC_BUTTON_THREAD:
				if (bSetThread == FALSE)
				{
					ClassXP(0, TRUE);
					SetDlgItemText(hWnd, IDC_BUTTON_DIALOG, "取消当前线程控件(&T)");
					bSetThread = TRUE;
				}
				else
				{
					ClassXP(0, FALSE);
					SetDlgItemText(hWnd, IDC_BUTTON_DIALOG, "设置当前线程控件(&T)");
					bSetThread = FALSE;
				}
				break;

			case IDC_BUTTON_MESSAGEBOX:
				MessageBox(hWnd, "看看 MessageBox() 弹出的对话框的按钮样子:)","测试", MB_ICONINFORMATION);
				break;

			case IDC_BUTTON_OPENFILENAME:
				szFileName[0] = '\0';
				ZeroMemory(&OpenFileName, sizeof(OPENFILENAME));
				OpenFileName.lStructSize = sizeof(OPENFILENAME);
				OpenFileName.hwndOwner = hWnd;
				OpenFileName.lpstrFile = szFileName;
				OpenFileName.nMaxFile = MAX_PATH;
				OpenFileName.lpstrDefExt = ".bmp";
				OpenFileName.lpstrFilter = "图像文件(*.bmp;*.jpg;*.gif)\0*.bmp;*.jpg;*.gif\0所有文件(*.*)\0*.*\0";
				OpenFileName.Flags = OFN_ENABLESIZING | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
				if(GetOpenFileName(&OpenFileName) == TRUE)
					MessageBox(hWnd, szFileName, "公用对话框测试", MB_ICONINFORMATION);
				break;
			}
		}
		break;

	case WM_CLOSE:
		EndDialog(hWnd, 0);
	}
	return FALSE;
}
////////////////////////////////////////////////////////////////////////////////////////////////////



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -