// *********************************************************
// 【Windows ダイアログボックスプログラミング】
// *********************************************************
#define _WIN32_WINNT 0x0500
#include <tchar.h>
#include "lightbox\lightbox.h"
#pragma comment( lib, "lightbox\\lightbox.lib" )
#pragma comment( lib, "shlwapi.lib" )
#pragma comment( lib, "wininet.lib" )
#define CONNECT_DELOBJECT LBOX_USER + 1
LboxTool Tool; // ツールオブジェクト
LboxDlg *Dlg = NULL;
LRESULT CALLBACK DialogProc( HWND, UINT, WPARAM, LPARAM );
// *********************************************************
// Windows アプリケーションとしてのエントリポイント
// Link.exe で /SUBSYSTEM:WINDOWS がデフォルトで
// 指定される事になります
// *********************************************************
int APIENTRY _tWinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
)
{
// ダイアログ表示
DialogBox(
hInstance,
(LPCTSTR)1,
GetDesktopWindow(),
(DLGPROC)DialogProc);
return 0;
}
// *********************************************************
// MDB 接続ダイアログ
// *********************************************************
LRESULT CALLBACK DialogProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )
{
switch( message ) {
case WM_INITDIALOG:
// ダイアログオブジェクト作成
Dlg = new LboxDlg( hDlg );
Dlg->ChangeIcon( 1 );
// デスクトップの中央
Dlg->MoveWindow(
(Tool.DesktopWidth() - Dlg->Width())/2,
(Tool.DesktopHeight() - Dlg->Height())/2
);
return true;
case WM_COMMAND:
// OK ボタン
if( LOWORD(wParam) == 1 ) {
LboxString LString;
LString.Printf("IDOK の番号 : %d, IDCANCEL の番号 : %d", IDOK, IDCANCEL );
MessageBox(hDlg, LString.szLboxString, "タイトル", MB_OK );
}
// キャンセルボタンで終了
if( LOWORD(wParam) == 2 ) {
Dlg->End( LOWORD(wParam) );
Dlg->SendMsg( CONNECT_DELOBJECT, 0, 0 );
}
break;
case CONNECT_DELOBJECT:
// ダイアログオブジェクトの廃棄
delete Dlg;
break;
}
return FALSE;
}