#include "stdafx.h"
#include "resource.h"
//http://www.pythonschool.com
BOOL __stdcall DlgProc( HWND, UINT, WPARAM, LPARAM );
HBITMAP g_hBitmap1;
HBITMAP g_hBitmap2;
HICON g_hIcon;
HBRUSH g_hBgBrush;
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
){
g_hBitmap1 = (HBITMAP)::LoadImage(
hInstance, // handle to instance
"picture2.bmp", // image to load
IMAGE_BITMAP, // image type
0, // desired width
0, // desired height
LR_LOADFROMFILE // load options
);
//g_hBitmap1 = ::LoadBitmap( hInstance, (LPCTSTR)IDB_BITMAP1);
g_hBitmap2 = ::LoadBitmap( hInstance, (LPCTSTR)IDB_BITMAP2);
g_hIcon = ::LoadIcon( hInstance, (LPCTSTR)IDI_MAIN);
g_hBgBrush = ::CreateSolidBrush(RGB(0xa6, 0xca, 0xf0));
int nResult = ::DialogBoxParam(
hInstance,
(LPCTSTR)IDD_CONTROLSDEMO_DIALOG,
NULL,
DlgProc,
NULL
);
::DeleteObject( g_hBgBrush );
return 0;
}
BOOL __stdcall DlgProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch( message )
{
case WM_INITDIALOG:
{
::SendMessage( hDlg, ICON_BIG, WM_SETICON, (long)g_hIcon );
HWND hWndBmp = ::GetDlgItem( hDlg, IDC_IMAGE );
LONG nStyle = ::GetWindowLong( hWndBmp, GWL_STYLE );
::SetWindowLong( hWndBmp, GWL_STYLE, nStyle|SS_BITMAP );
::SendDlgItemMessage( hDlg, IDC_IMAGE, STM_SETIMAGE, IMAGE_BITMAP, (long)g_hBitmap1 );
::CheckDlgButton( hDlg, IDC_RADIO1, BST_CHECKED );
}
break;
case WM_COMMAND:
switch( LOWORD(wParam) )
{
case IDC_BUTTON1:
{
HWND hWndEdit = ::GetDlgItem( hDlg, IDC_EDIT1 );
char szText[256];
int nLen = ::GetWindowText( hWndEdit, szText, 256 );
if( nLen > 0 )
{
::SendMessage( ::GetDlgItem( hDlg, IDC_LIST1 ), LB_ADDSTRING, 0, (long)szText );
::SetWindowText( hWndEdit, "" );
}
}
break;
case IDC_CHECK2:
{
HWND hWndCheck = ::GetDlgItem( hDlg, IDC_CHECK2 );
int nRet = ::SendMessage( hWndCheck, BM_GETCHECK, 0, 0 );
if( nRet == BST_CHECKED )
{
::SetWindowPos( hDlg, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOREDRAW );
}
else
{
::SetWindowPos( hDlg, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOREDRAW );
}
}
break;
case IDC_BUTTON2:
::EndDialog( hDlg, IDCANCEL );
break;
case IDC_RADIO1:
{
int nRet = ::IsDlgButtonChecked( hDlg, IDC_RADIO1 );
if( nRet == BST_CHECKED )
{
::SendDlgItemMessage( hDlg, IDC_IMAGE, STM_SETIMAGE,IMAGE_BITMAP, (long)g_hBitmap1 );
}
}
break;
case IDC_RADIO2:
{
int nRet = ::IsDlgButtonChecked( hDlg, IDC_RADIO2 );
if( nRet == BST_CHECKED )
{
::SendDlgItemMessage( hDlg, IDC_IMAGE, STM_SETIMAGE, IMAGE_BITMAP, (long)g_hBitmap2 );
//::SendMessage( ::GetDlgItem( hDlg, IDC_IMAGE), STM_SETIMAGE, IMAGE_BITMAP, (long)g_hBitmap2);
}
}
break;
case IDC_CHECK1:
{
HWND hWndBmp = ::GetDlgItem( hDlg, IDC_IMAGE );
HWND hWndCheck = ::GetDlgItem( hDlg, IDC_CHECK1 );
int nRet = ::SendMessage( hWndCheck, BM_GETCHECK, 0, 0 );
if( nRet == BST_CHECKED )
{
::ShowWindow( hWndBmp, SW_HIDE );
}
else
{
::ShowWindow( hWndBmp, SW_SHOW );
}
}
break;
}
break;
case WM_CTLCOLORSTATIC:
case WM_CTLCOLORDLG:
{
HDC hdc = (HDC)wParam;
::SetBkColor( hdc, RGB(0xa6, 0xca, 0xf0));
if( (HWND)lParam == ::GetDlgItem( hDlg, IDC_CHECK1 ))
{
::SetBkColor( hdc, RGB( 0, 0, 0xff ));
}
return (int)g_hBgBrush;
}
}
return 0;
}
http://www.pythonschool.com/
对话框中的子窗口控件
最新推荐文章于 2023-11-10 11:34:44 发布