winstyles.h
来自「管理项目进度工具的原代码」· C头文件 代码 · 共 591 行 · 第 1/3 页
H
591 行
#if !defined(AFX_STYLES_H__46AFC4E3_CC43_4E69_B5D3_2B6D1F501D0E__INCLUDED_)
#define AFX_STYLES_H__46AFC4E3_CC43_4E69_B5D3_2B6D1F501D0E__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <richedit.h>
struct Style
{
LPCTSTR szStyle; // style name
DWORD dwStyle; // style value
};
#define STYLE(s) #s, (DWORD)s
static Style ClassStyles[] =
{
{ STYLE(CS_VREDRAW) }, // 0x0001
{ STYLE(CS_HREDRAW) }, // 0x0002
{ STYLE(CS_DBLCLKS) }, // 0x0008
{ STYLE(CS_OWNDC) }, // 0x0020
{ STYLE(CS_CLASSDC) }, // 0x0040
{ STYLE(CS_PARENTDC) }, // 0x0080
{ STYLE(CS_NOCLOSE) }, // 0x0200
{ STYLE(CS_SAVEBITS) }, // 0x0800
{ STYLE(CS_BYTEALIGNCLIENT) },//0x1000
{ STYLE(CS_BYTEALIGNWINDOW) },//0x2000
{ STYLE(CS_GLOBALCLASS) }, // 0x4000
{ STYLE(CS_IME) }, // 0x00010000
};
///////
static Style WindowStyles[] =
{
{ STYLE(WS_OVERLAPPED) }, // 0x00000000L
{ STYLE(WS_POPUP) }, // 0x80000000L
{ STYLE(WS_CHILD) }, // 0x40000000L
{ STYLE(WS_MINIMIZE) }, // 0x20000000L
{ STYLE(WS_VISIBLE) }, // 0x10000000L
{ STYLE(WS_DISABLED) }, // 0x08000000L
{ STYLE(WS_CLIPSIBLINGS) }, // 0x04000000L
{ STYLE(WS_CLIPCHILDREN) }, // 0x02000000L
{ STYLE(WS_MAXIMIZE) }, // 0x01000000L
{ STYLE(WS_CAPTION) }, // 0x00C00000L
{ STYLE(WS_BORDER) }, // 0x00800000L
{ STYLE(WS_DLGFRAME) }, // 0x00400000L
{ STYLE(WS_VSCROLL) }, // 0x00200000L
{ STYLE(WS_HSCROLL) }, // 0x00100000L
{ STYLE(WS_SYSMENU) }, // 0x00080000L
{ STYLE(WS_THICKFRAME) }, // 0x00040000L
{ STYLE(WS_GROUP) }, // 0x00020000L
{ STYLE(WS_TABSTOP) }, // 0x00010000L
{ STYLE(WS_MINIMIZEBOX) },// 0x00020000L
{ STYLE(WS_MAXIMIZEBOX) },// 0x00010000L
// { STYLE(WS_TILED) }, // duplicate
// { STYLE(WS_ICONIC) }, // duplicate
// { STYLE(WS_SIZEBOX) }, // duplicate
// { STYLE(WS_TILEDWINDOW) }, // duplicate
// { STYLE(WS_OVERLAPPEDWINDOW) }, // aggregate style
// { STYLE(WS_POPUPWINDOW) }, // aggregate style
// { STYLE(WS_CHILDWINDOW) }, // duplicate
};
const int NUMWNDSTYLES = sizeof(WindowStyles) / sizeof(Style);
static UINT LookupWndStyle(LPCTSTR szStyle)
{
int nStyle = NUMWNDSTYLES;
while (nStyle--)
{
if (lstrcmp(szStyle, WindowStyles[nStyle].szStyle) == 0)
return WindowStyles[nStyle].dwStyle;
}
return 0;
}
////////
static Style WindowExStyles[] =
{
{ STYLE(WS_EX_DLGMODALFRAME) }, // 0x00000001L
{ STYLE(WS_EX_NOPARENTNOTIFY) }, // 0x00000004L
{ STYLE(WS_EX_TOPMOST) }, // 0x00000008L
{ STYLE(WS_EX_ACCEPTFILES) }, // 0x00000010L
{ STYLE(WS_EX_TRANSPARENT) }, // 0x00000020L
{ STYLE(WS_EX_MDICHILD) }, // 0x00000040L
{ STYLE(WS_EX_TOOLWINDOW) }, // 0x00000080L
{ STYLE(WS_EX_WINDOWEDGE) }, // 0x00000100L
{ STYLE(WS_EX_CLIENTEDGE) }, // 0x00000200L
{ STYLE(WS_EX_CONTEXTHELP) }, // 0x00000400L
{ STYLE(WS_EX_RIGHT) }, // 0x00001000L
{ STYLE(WS_EX_LEFT) }, // 0x00000000L
{ STYLE(WS_EX_RTLREADING) }, // 0x00002000L
{ STYLE(WS_EX_LTRREADING) }, // 0x00000000L
{ STYLE(WS_EX_LEFTSCROLLBAR) }, // 0x00004000L
{ STYLE(WS_EX_RIGHTSCROLLBAR) }, // 0x00000000L
{ STYLE(WS_EX_CONTROLPARENT) }, // 0x00010000L
{ STYLE(WS_EX_STATICEDGE) }, // 0x00020000L
{ STYLE(WS_EX_APPWINDOW) }, // 0x00040000L
// { STYLE(WS_EX_OVERLAPPEDWINDOW) }, // aggregate style
// { STYLE(WS_EX_PALETTEWINDOW) }, // aggregate style
};
const int NUMWNDEXSTYLES = sizeof(WindowExStyles) / sizeof(Style);
static UINT LookupWndExStyle(LPCTSTR szStyle)
{
int nStyle = NUMWNDEXSTYLES;
while (nStyle--)
{
if (lstrcmp(szStyle, WindowExStyles[nStyle].szStyle) == 0)
return WindowExStyles[nStyle].dwStyle;
}
return 0;
}
//////
static Style HitTests[] =
{
{ STYLE(HTERROR) }, // (-2)
{ STYLE(HTTRANSPARENT) }, // (-1)
{ STYLE(HTNOWHERE) }, // 0
{ STYLE(HTCLIENT) }, // 1
{ STYLE(HTCAPTION) }, // 2
{ STYLE(HTSYSMENU) }, // 3
{ STYLE(HTGROWBOX) }, // 4
{ STYLE(HTSIZE) }, // HTGROWBOX
{ STYLE(HTMENU) }, // 5
{ STYLE(HTHSCROLL) }, // 6
{ STYLE(HTVSCROLL) }, // 7
{ STYLE(HTMINBUTTON) }, // 8
{ STYLE(HTMAXBUTTON) }, // 9
{ STYLE(HTLEFT) }, // 10
{ STYLE(HTRIGHT) }, // 11
{ STYLE(HTTOP) }, // 12
{ STYLE(HTTOPLEFT) }, // 13
{ STYLE(HTTOPRIGHT) }, // 14
{ STYLE(HTBOTTOM) }, // 15
{ STYLE(HTBOTTOMLEFT) }, // 16
{ STYLE(HTBOTTOMRIGHT) }, // 17
{ STYLE(HTBORDER) }, // 18
{ STYLE(HTREDUCE) }, // HTMINBUTTON
{ STYLE(HTZOOM) }, // HTMAXBUTTON
{ STYLE(HTSIZEFIRST) }, // HTLEFT
{ STYLE(HTSIZELAST) }, // HTBOTTOMRIGHT
{ STYLE(HTOBJECT) }, // 19
{ STYLE(HTCLOSE) }, // 20
{ STYLE(HTHELP) }, // 21
};
// controls
struct Control
{
LPCTSTR szControlClass; // window class name
LPCTSTR szBaseClass; // avoids duplicating styles for richedit and comboboxex
DWORD dwExStyleMsg; // msg to send to control to retrieve Ex styles
};
static Control Controls[] =
{
{ "Button", "", 0 },
{ "Static", "", 0 },
{ "Edit", "", 0 },
{ "ComboBox", "", 0 },
{ "ComboLBox", "ListBox", 0 }, // drop list for the combo box
{ "ListBox", "", 0 },
{ "Scrollbar", "", 0 },
{ "toolbarwindow32", "CommonControl", TB_GETEXTENDEDSTYLE },
{ "msctls_updown32", "", 0 },
{ "msctls_progress32", "", 0 },
{ "msctls_trackbar32", "", 0 },
{ "msctls_hotkey32", "", 0 },
{ "SysListView32", "", LVM_GETEXTENDEDLISTVIEWSTYLE },
{ "SysTreeView32", "", 0 },
{ "SysTabControl32", "", TCM_GETEXTENDEDSTYLE },
{ "SysAnimate32", "", 0 },
{ "Richedit", "Edit", EM_GETEVENTMASK }, // event mask is like extended styles
{ "SysDateTimePick32", "", 0 },
{ "SysMonthCal32", "", 0 },
{ "SysIPAddress32", "", 0 },
{ "SysPager32", "", 0 },
{ "ComboBoxEx32", "ComboBox", CBEM_GETEXTENDEDSTYLE },
{ "msctls_statusbar32", "CommonControl", 0 },
{ "ReBarWindow32", "", 0 },
{ "SysHeader32", "", 0 },
{ "DialogBox", "", 0 },
{ "MDIClient", "", 0 },
{ "tooltips_class32", "", 0 },
};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?