// スタティックコントロールにはいりきらないパスを"..."にするには
// スタティックコントロール(ウィンドウ)のサイズにあわせて、パスが表示されます。shlwapi.lib が必要です。
#include <windows.h>
#include <tchar.h>
#include <shlwapi.h>
#include "resource.h"
BOOL CALLBACK DialogFunc ( HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam )
{
const _TCHAR cszPath[] = _TEXT ( "C:\\Program Files\\Internet Explorer\\iexplore.exe" );
switch ( nMessage ) {
case WM_INITDIALOG:
{
// パスをStatic textのサイズにあうように変更する
PathSetDlgItemPath ( hWnd, IDC_PATH_STATIC, cszPath );
}
return TRUE;
case WM_SIZE:
{
// ウィンドウのサイズが変更されたときに
// Static textのサイズを変更する
WORD wWidth = LOWORD ( lParam );
WORD wHeight = HIWORD ( lParam );
MoveWindow ( GetDlgItem ( hWnd, IDC_PATH_STATIC ), 0, 0, wWidth, wHeight, FALSE );
// パスをスタティックテキストのサイズにあうように変更する
PathSetDlgItemPath ( hWnd, IDC_PATH_STATIC, cszPath );
}
return TRUE;
case WM_COMMAND:
switch ( LOWORD ( wParam ) ) {
case IDCANCEL:
EndDialog ( hWnd, 0 );
return TRUE;
}
break;
}
return FALSE;
}
int WINAPI _tWinMain ( HINSTANCE hThisInstance,
HINSTANCE,
_TCHAR *,
int )
{
int nResponse;
nResponse = DialogBox ( hThisInstance, MAKEINTRESOURCE ( IDD_DIALOG1 ), NULL, DialogFunc );
return nResponse;
}
|