Parcan
![](images/avatars/166832151744f3d10440a4e.gif)
|
Posted: Fri Aug 05, 2005 09:22 Post subject: |
|
|
Maximus
да с листером боротся приходится
я сделал так (думая разберешся)
СОХРАНЕНИЕ РАЗМЕРОВ
void __stdcall ListCloseWindow(HWND ListWin)
{
//какойто код
//esli ispol'zuetsya opciya zapominat' razmer okna
//tut sohranim razmer okna
if ((!QuickView) && (SaveWindowSize))
{
//fayl nastroek ArchView.ini
MIniFile fINI;
RECT rcClient;
fINI.SetFile(gp->pIniFile);
//sohranim razmeri
hParentWnd = ::GetParent(ListWin);
::GetWindowRect(hParentWnd, &rcClient);
LeftPos = rcClient.left;
TopPos = rcClient.top;
Width = gp->OriginalWidth;
Height = gp->OriginalHeight;
fINI.WriteKey(gp->sSettings.SectionsINI.SectWindow, "WidthWindow", rcClient.right - rcClient.left);
fINI.WriteKey(gp->sSettings.SectionsINI.SectWindow, "HeightWindow", rcClient.bottom - rcClient.top);
}
//какойто код
//esli ispol'zuetsya opciya zapominat' razmer okna
//tut vosstanovim stariy razmer okna listera
if ((!QuickView) && (SaveWindowSize))
{
//vosstanovim razmeri
::SetWindowPos(hParentWnd, HWND_TOP,
LeftPos, TopPos, Width, Height, SWP_DRAWFRAME);
}
//какойто код
}
ВОССТАНОВЛЕНИЕ РАЗМЕРОВ
HWND __stdcall ListLoad(HWND ParentWin,char* FileToLoad,int ShowFlags)
{
//какойто код
//dlya zapuska cherez F3 vozmojno nado ustanovit' razmer
if ((!gp->TypeQuickView) &&
(gp->sSettings.sSettingsWindow.SaveWindowSize))
{
//sohranim razmeri (чтобы восстановить после закрытия плагина, может нажали 4 и будет открыт другой плагин)
::GetWindowRect(ParentWin, &rcClient);
gp->OriginalWidth = rcClient.right - rcClient.left;
gp->OriginalHeight = rcClient.bottom - rcClient.top;
//proverim nashi razmeri
if (!gp->sSettings.sSettingsWindow.WidthWindow)
gp->sSettings.sSettingsWindow.WidthWindow = gp->OriginalWidth;
if (!gp->sSettings.sSettingsWindow.HeightWindow)
gp->sSettings.sSettingsWindow.HeightWindow = gp->OriginalHeight;
//ustanovim novie razmeri
::SetWindowPos(ParentWin, HWND_TOP,
rcClient.left, rcClient.top,
gp->sSettings.sSettingsWindow.WidthWindow,
gp->sSettings.sSettingsWindow.HeightWindow,
SWP_DRAWFRAME);
}
//какойто код
}
пример этой работы можешь увидеть в листер плагине ArchView |
|