Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: Resize Size Dialog Message Box Length Character Text Font
Developers: ferchl, deanad and tonyd Date: July 7th, 2008
AddExtender("wwctl44i.dll") MSG_INIT = 0 RET_DO_DEFAULT = -1 #DefineSubRoutine MainDlgProc(MainDlg_Handle,MainDlg_Message,MainDlg_ID,MainDlg_EventInfo,rsvd) Switch MainDlg_Message Case MSG_INIT ControlHandle = cWndbyid(MainDlg_Handle,102) WM_GETFONT = 49 hFont = SendMessageA(ControlHandle,WM_GETFONT,0,0) ; Use dialog's DC HDC = DllCall(StrCat(DirWindows(1),"USER32.DLL"),long:"GetDC",long:MainDlg_Handle) ; Save current font hOldFont = DllCall(StrCat(DirWindows(1),"GDI32.DLL"),long:"SelectObject",long:HDC,long:hFont) lpsize = BinaryAlloc(8) result = DllCall(StrCat(DirWindows(1),"GDI32.DLL"),long:"GetTextExtentPoint32A",long:HDC,lpstr:Text,long:TextLen,lpbinary:lpsize) cx = BinaryPeek4(lpsize,0) cy = BinaryPeek4(lpsize,4) ; Restore previous font DllCall(StrCat(DirWindows(1),"GDI32.DLL"),long:"SelectObject",long:HDC,long: hOldFont) DllCall(StrCat(DirWindows(1),"USER32.DLL"),long:"ReleaseDC",long:MainDlg_Handle,long:hdc) Pos = WinPlaceGet(@NORMAL,Title) A = ItemExtract(1,Pos," ") B = ItemExtract(2,Pos," ") ; Use dialog frame width. C = Int(cx * 1.0 / WinMetrics(0) * 1000) + A + (WinMetrics(7) * 2) D = ItemExtract(4,Pos," ") WinPlaceSet(@NORMAL,Title,A:" ":B:" ":C:" ":D) Return RET_DO_DEFAULT EndSwitch #EndSubRoutine #DefineSubRoutine MainDlg(Text,Font) Title = "Test:" TextLen = StrCharCount(Text) MainDlgFormat = `WWWDLGED,6.1` MainDlgCaption = Title MainDlgX = -1 MainDlgY = -1 MainDlgWidth = 200 MainDlgHeight = 70 MainDlgNumControls = 003 MainDlgProcedure = `MainDlgProc` MainDlgFont = `DEFAULT` MainDlgTextColor = `DEFAULT` MainDlgBackground = `DEFAULT,DEFAULT` MainDlgConfig = 0 MainDlg001 = `005,050,036,011,PUSHBUTTON,DEFAULT,"OK",1,1,32,DEFAULT,DEFAULT,DEFAULT` MainDlg002 = `050,050,036,011,PUSHBUTTON,DEFAULT,"Cancel",0,2,DEFAULT,DEFAULT,DEFAULT,DEFAULT` MainDlg003 = `0,015,9999,011,VARYTEXT,Text,"",DEFAULT,3,DEFAULT,`:Font:`,"0|0|0",DEFAULT` ButtonPushed = Dialog("MainDlg") #EndSubRoutine MainDlg("iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii","Arial|7373|40|34") MainDlg("WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW","Arial|7373|40|34") MainDlg("iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii","Arial Black|8192|70|34") MainDlg("WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW","Arial Black|8192|70|34")
Article ID: W17784
Filename: Resize the Dialog Based on Length of Text and Font.txt
File Created: 2008:07:07:08:47:26
Last Updated: 2008:07:07:08:47:26