|
// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
// 1. INIファイルから表示状態・位置を取得、設定
// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
void LoadWindowPos(HWND hWnd)
{
// INIファイル名取得
char lpIniFilePath[_MAX_PATH];
GetIniFilePath(lpIniFilePath);
// ★★★ ウインドウ表示状態と位置を取得
WINDOWPLACEMENT wp;
GetWindowPlacement(hWnd, &wp);
// ウインドウ位置をINIファイルから取得
char lpDef[33];
char lpRes[33];
// 左上隅のx座標値
ltoa(wp.rcNormalPosition.left , lpDef, 10);
GetPrivateProfileString("WinPos", "left" , lpDef,
lpRes, 33, lpIniFilePath);
wp.rcNormalPosition.left = atol(lpRes);
// 右下隅のx座標値
ltoa(wp.rcNormalPosition.right , lpDef, 10);
GetPrivateProfileString("WinPos", "right" , lpDef,
lpRes, 33, lpIniFilePath);
wp.rcNormalPosition.right = atol(lpRes);
// 左上隅のy座標値
ltoa(wp.rcNormalPosition.top , lpDef, 10);
GetPrivateProfileString("WinPos", "top" , lpDef,
lpRes, 33, lpIniFilePath);
wp.rcNormalPosition.top = atol(lpRes);
// 右下隅のy座標値
ltoa(wp.rcNormalPosition.bottom , lpDef, 10);
GetPrivateProfileString("WinPos", "bottom" , lpDef,
lpRes, 33, lpIniFilePath);
wp.rcNormalPosition.bottom = atol(lpRes);
// ウインドウの表示状態
ltoa(wp.showCmd , lpDef, 10);
GetPrivateProfileString("WinPos", "showCmd", lpDef,
lpRes, 33, lpIniFilePath);
wp.showCmd = atol(lpRes);
// まず最小化で表示
ShowWindow(hWnd, SW_MINIMIZE);
// ★★★ ウインドウ表示状態と位置を設定
SetWindowPlacement(hWnd, &wp);
}
// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
// 2. 表示状態・位置を取得、INIファイルに保存
// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
void SaveWindowPos(HWND hWnd)
{
// INIファイル名取得
char lpIniFilePath[_MAX_PATH];
GetIniFilePath(lpIniFilePath);
// ★★★ 現在のウインドウ表示状態と位置を取得
WINDOWPLACEMENT wp;
GetWindowPlacement(hWnd, &wp);
// ウインドウ位置をINIファイルに保存
char lpSet[33];
// 左上隅のx座標値
ltoa(wp.rcNormalPosition.left , lpSet, 10);
WritePrivateProfileString("WinPos", "left" ,
lpSet, lpIniFilePath);
// 右下隅のx座標値
ltoa(wp.rcNormalPosition.right , lpSet, 10);
WritePrivateProfileString("WinPos", "right" ,
lpSet, lpIniFilePath);
// 左上隅のy座標値
ltoa(wp.rcNormalPosition.top , lpSet, 10);
WritePrivateProfileString("WinPos", "top" ,
lpSet, lpIniFilePath);
// 右下隅のy座標値
ltoa(wp.rcNormalPosition.bottom , lpSet, 10);
WritePrivateProfileString("WinPos", "bottom" ,
lpSet, lpIniFilePath);
// ウインドウの表示状態
ltoa(wp.showCmd , lpSet, 10);
WritePrivateProfileString("WinPos", "showCmd",
lpSet, lpIniFilePath);
}
|