extern "C" { #include #include } #include #include #include "resource.h" // The following definition specifies the length of time that the // stupid lawyer message will remain on the screen // #define cmsecSHOW_LAWYER_MESSAGE 5000 // Individual string resources in .RC files can't be more than 256 // characters long. // #define cchRESOURCE 256 // Lawyer_OnInitDialog - Populates the lawyer message window // void Lawyer_OnInitDialog (HWND hDlg) { // Make the title item boldfaced // HFONT hfOld = (HFONT)SendDlgItemMessage (hDlg, IDC_TITLE, WM_GETFONT, 0, 0); LOGFONT lf; GetObject (hfOld, sizeof(lf), &lf); lf.lfWeight = FW_BOLD; SendDlgItemMessage (hDlg, IDC_TITLE, WM_SETFONT, (WPARAM)CreateFontIndirect (&lf), 0); // Allocate a buffer, load the string, and shove the text // in the main window. // LPTSTR pszMessage = FormatString (TEXT("%1"), TEXT("%m"), IDS_MESSAGE_1); SetDlgItemText (hDlg, IDC_MESSAGE, pszMessage); FreeString (pszMessage); } // Lawyer_DlgProc - The window procedure for the lawyer message // BOOL CALLBACK Lawyer_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_INITDIALOG: Lawyer_OnInitDialog (hDlg); SetTimer (hDlg, 0, cmsecSHOW_LAWYER_MESSAGE, NULL); break; case WM_DESTROY: PostQuitMessage (0); break; case WM_TIMER: DestroyWindow (hDlg); KillTimer (hDlg, 0); break; case WM_CTLCOLORSTATIC: if ((HWND)lp == GetDlgItem (hDlg, IDC_MESSAGE)) { static HBRUSH hbrBackground = CreateSolidBrush (GetSysColor (COLOR_BTNFACE)); SetBkColor ((HDC)wp, GetSysColor (COLOR_BTNFACE)); SetTextColor ((HDC)wp, GetSysColor (COLOR_WINDOWTEXT)); return (BOOL)hbrBackground; } break; case WM_COMMAND: if (LOWORD(wp) == IDCANCEL) DestroyWindow (hDlg); break; } return FALSE; } // WinMain - Creates the window, waits for it to terminate // int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR pCmdLine, int nCmdShow) { TaLocale_LoadCorrespondingModule (hInst); HWND hDlg = ModelessDialog (IDD_LAWYER, NULL, (DLGPROC)Lawyer_DlgProc); SetWindowPos (hDlg, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_SHOWWINDOW); MSG msg; while (GetMessage (&msg, NULL, 0, 0)) { if (!IsDialogMessage (hDlg, &msg)) { TranslateMessage (&msg); DispatchMessage (&msg); } } return 0; }