Algorithm Alley by John Keogh Listing One /* holds an identifier and the initial RECT of the control */ typedef struct { HWND hControl; RECT rect; } resizeinfo; Listing Two /* iterate through the resize array and get the correct information*/ resizeinfo GetResizeInfo(HWND hwnd) { resizeinfo ri; int i; for(i=0; i #include "resize.rh" /* this icon is external, you need an icon named resize.ico in the directory for the resource to compile correctly */ resizeicon ICON "resize.ico" /* menu */ resizemenu MENU { POPUP "&File" { MENUITEM "&Quit...", IDC_QUIT } POPUP "&Help" { MENUITEM "&About...", IDC_ABOUT } } /* Client Dialog */ resizedialog DIALOG 3, 14, 305, 75 STYLE WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX CLASS "resize" CAPTION "Resizable Dialog Interface" FONT 8, "MS Sans Serif" { CONTROL "About", IDC_ABOUT, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 228, 28, 65, 12 CONTROL "Quit", IDC_QUIT, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 228, 41, 65, 12 CONTROL "", IDC_TEXTAREA, "EDIT", ES_LEFT | ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 10, 10, 198, 46 CONTROL "", IDC_TEXTFIELD, "edit", ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 228, 10, 66, 14 } /* conventional about box */ AboutBox DIALOG 31, 24, 160, 52 STYLE WS_POPUP | WS_DLGFRAME { CONTROL "Resizable Dialog Client", -1, "STATIC", SS_CENTER | WS_CHILD | WS_VISIBLE | WS_GROUP, 16, 10, 128, 12 CONTROL "OK", IDOK, "BUTTON", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 64, 32, 32, 14 } Listing Five /*resize.rh*/ #define IDC_STATICTEXT 101 #define IDC_TEXTAREA 102 #define IDC_TEXTFIELD 103 #define IDC_ABOUT 104 #define IDC_QUIT 105 3