void LoadBackgroundImage(HWND hWnd) { HINSTANCE hStamps = 0; HWND hImageCtrl = GetDlgItem(hWnd, IDC_PUZZLE_IMAGE); if (hImageCtrl) { // Choose a random sticker dll based upon iCategory. iTotalCategories = GetExtNameCount(IDN_STAMP); iCategory = rand(); iCategory %= iTotalCategories; hStamps = OptionLoadLibrary(hWnd, 0, 0, IDN_STAMP, iCategory, iTotalCategories); if (hStamps > (HINSTANCE)HINSTANCE_ERROR) { LPFRAME lpNewFrame; // Choose a random sticker based on iCategory iCategory = rand(); iCategory %= MAX_STICKERS_IN_DLL; iCategory++; iCategory = GetNextValidStampString(hStamps, iCategory, szGuess); lpNewFrame = TiffResource2Frame(hStamps, (LPSTR)MAKEINTRESOURCE(iCategory)); if (lpNewFrame) ResizePuzzleFrame(lpNewFrame); FreeLibrary(hStamps); } hStamps = 0; } }
BOOL WINPROC EXPORT DlgLinesProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) /***********************************************************************/ { STRING szOptions; LPFRAME lpFrame; switch (msg) { case WM_INITDIALOG: SetControlFont (hDlg, IDC_LINES_CATEGORY); RibbonInit( hDlg ); ColorInit( hDlg ); iTotalCategories = GetExtNameCount( IDN_CUSTOM ); hOptions = OptionLoadLibrary( hDlg, IDC_LINES_CATEGORY, 11/*iCount*/, IDN_CUSTOM, iCategory, iTotalCategories ); OptionGetString( hOptions, 0, szOptions ); SetWindowText( GetDlgItem( hDlg, IDC_LINES_CATEGORY ), szOptions ); CheckRadioButton( hDlg, IDC_LINES_T1, IDC_LINES_T10, iTool+IDC_LINES_T1 ); // Fall thru... case WM_CONTROLENABLE: case WM_DOCACTIVATED: Retouch.hBrush = CreateSimpleBrush( Retouch.hBrush ); SetSimpleBrushStrokeMethod( Retouch.hBrush, SM_SIMPLE_DDA ); SetSimpleBrushSpacing( Retouch.hBrush, 100 ); OptionGetString( hOptions, iTool+1, szOptions ); lpFrame = TiffResource2Frame( hOptions, (LPSTR)MAKEINTRESOURCE(iTool+1) ); SetSimpleBrushSource( Retouch.hBrush, lpFrame, szOptions ); break; case WM_SETCURSOR: return( SetupCursor( wParam, lParam, Tool.idRibbon ) ); case WM_ERASEBKGND: break; // handle ERASEBKGND and do nothing; PAINT covers everything case WM_PAINT: LayoutPaint( hDlg ); break; case WM_DESTROY: if ( hOptions != hInstAstral ) FreeLibrary( hOptions ); return( FALSE ); case WM_CLOSE: AstralDlgEnd( hDlg, FALSE ); break; case WM_CTLCOLOR: return( (BOOL)SetControlColors( (HDC)wParam, hDlg, (HWND)LOWORD(lParam), HIWORD(lParam) ) ); case WM_COMMAND: switch (wParam) { case IDC_ACTIVECOLOR: case IDC_COLORS_LINES: ColorCommand( hDlg, wParam, lParam ); break; case IDC_LINES_CATEGORY: if ( hOptions != hInstAstral ) FreeLibrary( hOptions ); iCategory++; hOptions = OptionLoadLibrary( hDlg, IDC_LINES_CATEGORY, 11/*iCount*/, IDN_CUSTOM, iCategory, iTotalCategories ); OptionGetString( hOptions, 0, szOptions ); SetWindowText( GetDlgItem( hDlg, IDC_LINES_CATEGORY ), szOptions ); OptionGetString( hOptions, iTool+1, szOptions ); lpFrame = TiffResource2Frame( hOptions, (LPSTR)MAKEINTRESOURCE(iTool+1) ); SetSimpleBrushSource( Retouch.hBrush, lpFrame, szOptions ); break; case IDC_LINES_T1: case IDC_LINES_T2: case IDC_LINES_T3: case IDC_LINES_T4: case IDC_LINES_T5: case IDC_LINES_T6: case IDC_LINES_T7: case IDC_LINES_T8: case IDC_LINES_T9: case IDC_LINES_T10: CheckRadioButton( hDlg, IDC_LINES_T1, IDC_LINES_T10, wParam ); iTool = wParam - IDC_LINES_T1; OptionGetString( hOptions, iTool+1, szOptions ); lpFrame = TiffResource2Frame( hOptions, (LPSTR)MAKEINTRESOURCE(iTool+1) ); SetSimpleBrushSource( Retouch.hBrush, lpFrame, szOptions ); break; default: return( FALSE ); } break; default: return( FALSE ); } return( TRUE ); }