对话框中的子窗口控件

#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/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘华世(Moments)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值