DN_RESIZECONSOLE
Событие
DN_RESIZECONSOLE
передаётся процедуре обработки диалога после изменения размера консоли (например, после того, как пользователь нажал Alt+F9).
Param1
0
Param2
Указатель на структуру COORD, в которой указаны текущие размеры консоли.
Return
TRUE
.
Элементы
Элемент | Описание |
---|---|
Диалог | сообщение затрагивает только диалог |
Замечания
Событие
DN_RESIZECONSOLE
полезно в том случае, когда плагин умеет подстраиваться под текущие размеры консоли. Пример работы данного события
можно наблюдать в диалоге поиска файлов (Alt+F7).
Пример
Изменение размеров диалога поиска (Alt+F7) при изменении размеров консоли.
case DN_RESIZECONSOLE: { COORD coord=(*(COORD*)Param2); SMALL_RECT rect; int IncY=coord.Y-DlgHeight-4; ... Info.SendDlgMessage(hDlg,DM_ENABLEREDRAW,FALSE,0); Info.SendDlgMessage(hDlg,DM_GETDLGRECT,0,&rect); coord.X=rect.Right-rect.Left+1; DlgHeight+=IncY; coord.Y=DlgHeight; if (IncY > 0) Info.SendDlgMessage(hDlg,DM_RESIZEDIALOG,0,&coord); for (I=0; I < 2; I++) { Info.SendDlgMessage(hDlg,DM_GETITEMPOSITION,I,&rect); rect.Bottom+=(short)IncY; Info.SendDlgMessage(hDlg,DM_SETITEMPOSITION,I,&rect); } for (I=2; I < 10; I++) { Info.SendDlgMessage(hDlg,DM_GETITEMPOSITION,I,&rect); if (I==2) rect.Left=-1; rect.Top+=(short)IncY; Info.SendDlgMessage(hDlg,DM_SETITEMPOSITION,I,&rect); } if (IncY <= 0) Info.SendDlgMessage(hDlg,DM_RESIZEDIALOG,0,&coord); Info.SendDlgMessage(hDlg,DM_ENABLEREDRAW,TRUE,0); ... return TRUE; }
Смотрите также: