static bool RegisterWinClass() { WNDCLASSEX wcex; ATOM atom; FillWndClassEx(wcex, FRAME_CLASS_NAME, WndProcFrame); wcex.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_SUMATRAPDF)); CrashIf(!wcex.hIcon); // For the extended translucent frame to be visible, we need black background. wcex.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); atom = RegisterClassEx(&wcex); CrashIf(!atom); FillWndClassEx(wcex, CANVAS_CLASS_NAME, WndProcCanvas); wcex.style |= CS_DBLCLKS; atom = RegisterClassEx(&wcex); CrashIf(!atom); FillWndClassEx(wcex, PROPERTIES_CLASS_NAME, WndProcProperties); wcex.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_SUMATRAPDF)); CrashIf(!wcex.hIcon); atom = RegisterClassEx(&wcex); CrashIf(!atom); RegisterNotificationsWndClass(); RegisterSplitterWndClass(); RegisterLabelWithCloseWnd(); RegisterCaptionWndClass(); return true; }
void RegisterNotificationsWndClass(HINSTANCE inst) { WNDCLASSEX wcex; FillWndClassEx(wcex, inst, NOTIFICATION_WND_CLASS_NAME, NotificationWnd::WndProc); wcex.hCursor = LoadCursor(NULL, IDC_APPSTARTING); RegisterClassEx(&wcex); }
bool Window::RegClass(LPCTSTR lpszClass, HINSTANCE hInstance) { WNDCLASSEX wcex; if (!GetClassInfoEx(hInstance, lpszClass, &wcex)) { wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = 0; wcex.lpfnWndProc = WindowProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = NULL; wcex.hIcon = NULL; wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wcex.lpszMenuName = NULL; wcex.lpszClassName = NULL; wcex.hIconSm = NULL; FillWndClassEx(wcex); wcex.hInstance = hInstance; wcex.lpszClassName = lpszClass; if (!RegisterClassEx(&wcex)) { return false; } } return true; }
void RegisterNotificationsWndClass() { WNDCLASSEX wcex; FillWndClassEx(wcex, NOTIFICATION_WND_CLASS_NAME, NotificationWnd::WndProc); wcex.hCursor = LoadCursor(nullptr, IDC_APPSTARTING); RegisterClassEx(&wcex); }
void Initialize() { WNDCLASSEX wcex; FillWndClassEx(wcex, UITASK_CLASS_NAME, WndProcTaskDispatch); RegisterClassEx(&wcex); CrashIf(gTaskDispatchHwnd); gTaskDispatchHwnd = CreateWindow(UITASK_CLASS_NAME, L"UITask Dispatch Window", WS_OVERLAPPED, 0, 0, 0, 0, HWND_MESSAGE, NULL, GetModuleHandle(NULL), NULL); }
static void RegisterFrameRateWndClass() { static ATOM atom = NULL; if (!atom) { WNDCLASSEX wcex; FillWndClassEx(wcex, FRAME_RATE_CLASS_NAME, WndProcFrameRate); atom = RegisterClassEx(&wcex); CrashIf(!atom); } }
void Initialize() { WNDCLASSEX wcex; HINSTANCE hinst = GetModuleHandle(NULL); FillWndClassEx(wcex, hinst, UITASK_CLASS_NAME, WndProcTaskDispatch); RegisterClassEx(&wcex); gTaskDispatchHwnd = CreateWindow( UITASK_CLASS_NAME, L"UITask Dispatch Window", WS_OVERLAPPED, 0, 0, 0, 0, NULL, NULL, hinst, NULL); }
static bool RegisterWinClass(HINSTANCE hinst) { WNDCLASSEX wcex; ATOM atom; FillWndClassEx(wcex, hinst, FRAME_CLASS_NAME, WndProcFrame); wcex.hIcon = LoadIcon(hinst, MAKEINTRESOURCE(IDI_SUMATRAPDF)); atom = RegisterClassEx(&wcex); CrashIf(!atom); FillWndClassEx(wcex, hinst, CANVAS_CLASS_NAME, WndProcCanvas); wcex.style |= CS_DBLCLKS; atom = RegisterClassEx(&wcex); CrashIf(!atom); FillWndClassEx(wcex, hinst, PROPERTIES_CLASS_NAME, WndProcProperties); wcex.hIcon = LoadIcon(hinst, MAKEINTRESOURCE(IDI_SUMATRAPDF)); atom = RegisterClassEx(&wcex); CrashIf(!atom); FillWndClassEx(wcex, hinst, SIDEBAR_SPLITTER_CLASS_NAME, WndProcSidebarSplitter); wcex.hCursor = LoadCursor(NULL, IDC_SIZEWE); wcex.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); atom = RegisterClassEx(&wcex); CrashIf(!atom); FillWndClassEx(wcex, hinst, FAV_SPLITTER_CLASS_NAME, WndProcFavSplitter); wcex.hCursor = LoadCursor(NULL, IDC_SIZENS); wcex.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); atom = RegisterClassEx(&wcex); CrashIf(!atom); RegisterNotificationsWndClass(hinst); RegisterMobiWinClass(hinst); return true; }
// call only once at the beginning of program void RegisterSplitterWndClass() { if (splitterBmp) return; static WORD dotPatternBmp[8] = { 0x00aa, 0x0055, 0x00aa, 0x0055, 0x00aa, 0x0055, 0x00aa, 0x0055 }; splitterBmp = CreateBitmap(8, 8, 1, 1, dotPatternBmp); splitterBrush = CreatePatternBrush(splitterBmp); WNDCLASSEX wcex; FillWndClassEx(wcex, SPLITTER_CLASS_NAME, WndProcSplitter); RegisterClassEx(&wcex); }
void OnMenuAbout() { if (gHwndAbout) { SetActiveWindow(gHwndAbout); return; } if (!gAtomAbout) { WNDCLASSEX wcex; FillWndClassEx(wcex, ghinst, ABOUT_CLASS_NAME, WndProcAbout); wcex.hIcon = LoadIcon(ghinst, MAKEINTRESOURCE(IDI_SUMATRAPDF)); gAtomAbout = RegisterClassEx(&wcex); CrashIf(!gAtomAbout); } gHwndAbout = CreateWindow( ABOUT_CLASS_NAME, ABOUT_WIN_TITLE, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, ghinst, NULL); if (!gHwndAbout) return; // get the dimensions required for the about box's content RectI rc; PAINTSTRUCT ps; HDC hdc = BeginPaint(gHwndAbout, &ps); UpdateAboutLayoutInfo(gHwndAbout, hdc, &rc); EndPaint(gHwndAbout, &ps); rc.Inflate(ABOUT_RECT_PADDING, ABOUT_RECT_PADDING); // resize the new window to just match these dimensions WindowRect wRc(gHwndAbout); ClientRect cRc(gHwndAbout); wRc.dx += rc.dx - cRc.dx; wRc.dy += rc.dy - cRc.dy; MoveWindow(gHwndAbout, wRc.x, wRc.y, wRc.dx, wRc.dy, FALSE); ShowWindow(gHwndAbout, SW_SHOW); }
void RegisterLabelWithCloseWnd() { WNDCLASSEX wcex; FillWndClassEx(wcex, WND_CLASS_NAME, WndProcLabelWithClose); RegisterClassEx(&wcex); }
static bool RegisterWinClass(HINSTANCE hinst) { WNDCLASSEX wcex; ATOM atom; FillWndClassEx(wcex, hinst); wcex.lpfnWndProc = WndProcFrame; wcex.lpszClassName = FRAME_CLASS_NAME; wcex.hIcon = LoadIcon(hinst, MAKEINTRESOURCE(IDI_SUMATRAPDF)); wcex.hIconSm = LoadIcon(hinst, MAKEINTRESOURCE(IDI_SMALL)); atom = RegisterClassEx(&wcex); if (!atom) return false; FillWndClassEx(wcex, hinst); wcex.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; wcex.lpfnWndProc = WndProcCanvas; wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.lpszClassName = CANVAS_CLASS_NAME; atom = RegisterClassEx(&wcex); if (!atom) return false; FillWndClassEx(wcex, hinst); wcex.lpfnWndProc = WndProcAbout; wcex.hIcon = LoadIcon(hinst, MAKEINTRESOURCE(IDI_SUMATRAPDF)); wcex.lpszClassName = ABOUT_CLASS_NAME; atom = RegisterClassEx(&wcex); if (!atom) return false; FillWndClassEx(wcex, hinst); wcex.lpfnWndProc = WndProcProperties; wcex.hIcon = LoadIcon(hinst, MAKEINTRESOURCE(IDI_SUMATRAPDF)); wcex.lpszClassName = PROPERTIES_CLASS_NAME; atom = RegisterClassEx(&wcex); if (!atom) return false; FillWndClassEx(wcex, hinst); wcex.lpfnWndProc = WndProcSidebarSplitter; wcex.hCursor = LoadCursor(NULL, IDC_SIZEWE); wcex.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); wcex.lpszClassName = SIDEBAR_SPLITTER_CLASS_NAME; atom = RegisterClassEx(&wcex); if (!atom) return false; FillWndClassEx(wcex, hinst); wcex.lpfnWndProc = WndProcFavSplitter; wcex.hCursor = LoadCursor(NULL, IDC_SIZENS); wcex.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); wcex.lpszClassName = FAV_SPLITTER_CLASS_NAME; atom = RegisterClassEx(&wcex); if (!atom) return false; if (!RegisterNotificationsWndClass(hinst)) return false; if (!RegisterMobiWinClass(hinst)) return false; return true; }