Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- case WM_CTLCOLORDLG:
- {
- RECT rect; // dialog's client rectangle
- GetClientRect( hwnd, &rect );
- // ligh gray brush for hatched brush
- HBRUSH hbPozadina = CreateSolidBrush( RGB( 242, 242, 242 ) );
- FillRect( (HDC)wParam, &rect, hbPozadina );
- // cleanup
- DeleteObject( hbPozadina );
- // draw grid "manualy"
- LOGBRUSH lbPozadina;
- HGDIOBJ hPenPozadina = NULL, hOldPenPozadina;
- lbPozadina.lbColor = RGB( 255, 255, 255 );
- lbPozadina.lbHatch = 0;
- lbPozadina.lbStyle = BS_SOLID;
- hPenPozadina = ExtCreatePen( PS_COSMETIC | PS_SOLID, 1, &lbPozadina, 0, NULL);
- hOldPenPozadina = SelectObject((HDC)wParam, hPenPozadina);
- // draw vertical lines
- for( int i = rect.left + 12; i< rect.right; i += 12)
- {
- MoveToEx((HDC)wParam, i, rect.top, NULL );
- LineTo((HDC)wParam, i, rect.bottom - rect.top + 1 );
- }
- // draw horizontal lines
- for( int i = rect.top + 12; i< rect.bottom; i += 12)
- {
- MoveToEx((HDC)wParam, rect.left, i, NULL );
- LineTo((HDC)wParam, rect.right - rect.left + 1, i );
- }
- //clean up
- SelectObject((HDC)wParam, hOldPenPozadina);
- DeleteObject(hPenPozadina);
- // draw metafile of the map
- HENHMETAFILE hemf = GetEnhMetaFile( L".\\resources\\KartaDlg.emf" );
- ENHMETAHEADER emh;
- GetEnhMetaFileHeader( hemf, sizeof(emh), &emh );
- // remove the "status bar" from the calculation
- RECT r;
- r.top = rect.top;
- r.bottom = rect.bottom - 30;
- r.left = rect.left;
- r.right = rect.right;
- // calculate rescaled metafile
- UINT o_height = emh.rclFrame.bottom - emh.rclFrame.top,
- o_width = emh.rclFrame.right - emh.rclFrame.left;
- float scale = 0.5;
- scale = (float)( r.right - r.left ) / o_width;
- if( (float)( r.bottom - r.top ) / o_height < scale )
- scale = (float)( r.bottom - r.top ) / o_height;
- int marginX = ( r.right - r.left ) - (int)( o_width * scale );
- int marginY = ( r.bottom - r.top ) - (int)( o_height * scale );
- marginX /= 2;
- marginY /= 2;
- r.left = r.left + marginX;
- r.right = r.right - marginX;
- r.top = r.top + marginY;
- r.bottom = r.bottom - marginY;
- // Draw the picture.
- PlayEnhMetaFile( (HDC)wParam, hemf, &r );
- // Release the metafile handle.
- DeleteEnhMetaFile(hemf);
- // this function draws green gradient and icon
- drawFooter( (HDC)wParam, rect,
- RGB( 0x48, 0xAC, 0xC6), RGB( 0x31, 0x83, 0x99 ) );
- //========= draw right text in status bar =============//
- SetBkMode( (HDC)wParam, TRANSPARENT );
- SIZE sBaner; // needed for proper positioning
- HFONT hf, hfOld;
- long lfHeight;
- lfHeight = -MulDiv( 8, GetDeviceCaps( (HDC)wParam, LOGPIXELSY), 72 );
- hf = CreateFont( lfHeight, 0, 0, 0, FW_BOLD, TRUE,
- 0, 0, 0, 0, 0, 0, 0, L"Arial Black" );
- hfOld = (HFONT)SelectObject( (HDC)wParam, hf ); // needed for proper cleanup
- GetTextExtentPoint32( (HDC)wParam,
- L"ЦЕНТАР ЗА ОБНОВЉИВЕ ВОДНЕ ЕНЕРГЕТСКЕ РЕСУРСЕ",
- wcslen(L"ЦЕНТАР ЗА ОБНОВЉИВЕ ВОДНЕ ЕНЕРГЕТСКЕ РЕСУРСЕ"),
- &sBaner );
- // position it properly
- r.bottom = rect.bottom;
- r.right = rect.left + sBaner.cx + 30;
- r.left = rect.left + 30;
- r.top = rect.bottom - rect.top - 30;
- // draw it
- DrawTextEx( (HDC)wParam,
- L"РУДАРСКО ГЕОЛОШКИ ФАКУЛТЕТ\nЦЕНТАР ЗА ОБНОВЉИВЕ ВОДНЕ ЕНЕРГЕТСКЕ РЕСУРСЕ",
- wcslen(L"РУДАРСКО ГЕОЛОШКИ ФАКУЛТЕТ\nЦЕНТАР ЗА ОБНОВЉИВЕ ВОДНЕ ЕНЕРГЕТСКЕ РЕСУРСЕ"),
- &r, DT_CENTER | DT_VCENTER | DT_NOCLIP | DT_WORDBREAK, 0 );
- SelectObject( (HDC)wParam, hfOld ); // proper cleanup
- DeleteObject( hf );
- //============== right text in the status bar ==================//
- lfHeight = -MulDiv( 10, GetDeviceCaps( (HDC)wParam, LOGPIXELSY), 72 );
- hf = CreateFont( lfHeight, 0, 0, 0, FW_BOLD, TRUE,
- 0, 0, 0, 0, 0, 0, 0, L"Arial" );
- hfOld = (HFONT)SelectObject( (HDC)wParam, hf ); // needed for proper cleanup
- GetTextExtentPoint32( (HDC)wParam,
- L" Дејан Миленић & Ана Врањеш © 2013 сва права задржана",
- wcslen(L" Дејан Миленић & Ана Врањеш © 2013 сва права задржана"),
- &sBaner );
- // position it properly
- r.bottom = rect.bottom;
- r.right = rect.right - 10;
- r.left = rect.right - rect.left - sBaner.cx - 10;
- r.top = rect.bottom - rect.top - sBaner.cy;
- // draw it
- DrawTextEx( (HDC)wParam,
- L" Дејан Миленић & Ана Врањеш © 2013 сва права задржана",
- wcslen(L" Дејан Миленић & Ана Врањеш © 2013 сва права задржана"),
- &r, DT_CENTER | DT_VCENTER | DT_NOCLIP | DT_WORDBREAK | DT_NOPREFIX, 0 );
- // perform proper cleanup
- SelectObject( (HDC)wParam, hfOld );
- DeleteObject(hf);
- }
- return (INT_PTR)GetStockObject(NULL_BRUSH);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement