コード例 #1
0
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;
    }
}
コード例 #2
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 );
}