BCX_WND creates a window.
Syntax:HndlWnd = BCX_WND(ClassName AS STRING, _ ProcedureName AS WNDPROC, _ Caption AS STRING _ [, hParent AS HWND] _ [, Xpos AS INTEGER] _ [, Ypos AS INTEGER] _ [, Width AS INTEGER] _ [, Height AS INTEGER] _ [, WinStyle AS INTEGER] _ [, ExWinStyle AS INTEGER] _ [, nID AS HMENU) Return Value:
Parameters:
|
Using BCX_WND sets PIXELS on as default.
GUI NOMAIN FUNCTION WINMAIN () HWND Form1 Form1 = BCX_WND("MAINFORM", Form1Proc, "GUI NOMAIN TEST") SHOW(Form1) FUNCTION = BCX_MSGPUMP() END FUNCTION BEGIN EVENTS Form1Proc END EVENTS MAIN
SHOWMODAL ... ENDMODAL are used together to make a BCX_WND window modal. SHOWMODAL ... ENDMODAL can be used only with a BCX_WND window which has another window as its parent. SHOWMODAL ... ENDMODAL cause the parent window to be disabled when the BCX_WND child form is opened and to be enabled when the BCX_WND child form is closed.
Syntax:' Placed at the point in the program where the BCX_WND ' is to be changed to a modal condition. SHOWMODAL(HndlWnd) ' Placed at the point in the program where the BCX_WND ' is to be reverted to a modeless condition. ENDMODAL(HndlWnd) Parameters:
|
This example shows usage of the SHOWMODAL and ENDMODAL macros
GUI NOMAIN, PIXELS FUNCTION WINMAIN () GLOBAL Form1 AS CONTROL GLOBAL Button1 AS CONTROL Form1 = BCX_WND("MAINFORM", form1Proc, "Multi-Form GUI NoMain / Dialog Test",0,0,0,800,600) BCX_SET_FORM_COLOR(Form1,QBCOLOR(31)) BCX_SETICON(Form1, 123) Button1 = BCX_BUTTON("Modal", Form1, 98, 690, 20, 96, 24) BCX_BUTTON("Modeless", Form1, 99, 690, 50, 96, 24) BCX_BUTTON("Modal Form", Form1, 100, 690, 80, 96, 24) BCX_BUTTON("Non-Modal Form", Form1, 105, 690, 110, 96, 24) BCX_BUTTON("Close", Form1, 104, 690, 140, 96, 24) CENTER(Form1) SHOW(Form1) SetFocus(Button1) FUNCTION = BCX_MSGPUMP() END FUNCTION BEGIN EVENTS form1Proc HANDLE_MSG(WM_COMMAND, form1_command) HANDLE_MSG(WM_CLOSE, form1_close) END EVENTS MAIN MSGHANDLER form1_command IF CBCTLMSG = BN_CLICKED THEN IF CBCTL = 98 THEN BCX_MDIALOG(DialogOne,"BCX Modal Dialog",Form1,110,110,110,110) END IF IF CBCTL = 99 THEN BCX_DIALOG(DialogTwo,"BCX Modeless Dialog",Form1,110,110,110,110) END IF IF CBCTL = 100 THEN LoadForm2() END IF IF CBCTL = 105 THEN LoadForm3() END IF IF CBCTL = 104 THEN SendMessage(Form1, WM_CLOSE, 0, 0) END IF END IF END HANDLER MSGHANDLER form1_close LReturn = DestroyWindow(hWnd) END HANDLER '---------------------------------------------------- BEGIN MODAL DIALOG AS DialogOne SELECT CASE CBMSG CASE WM_INITDIALOG CENTER(hWnd) SHOW(hWnd) END SELECT END DIALOG '---------------------------------------------------- BEGIN DIALOG AS DialogTwo SELECT CASE CBMSG CASE WM_INITDIALOG CENTER(hWnd) SHOW(hWnd) END SELECT END DIALOG FUNCTION LoadForm2 () LOCAL nStyle LOCAL form2 AS HWND form2 = BCX_WND("CHILD1FORM", form2Proc, "Modal Form", Form1,10,10, 640,400, nStyle, 0) BCX_SETICON(form2, 123) BCX_BUTTON("Modal", form2, 101,560, 20, 72, 24) BCX_BUTTON("Modeless", form2, 102,560, 50, 72, 24) BCX_BUTTON("Close", form2, 103,560, 80, 72, 24) SHOWMODAL(form2) FUNCTION = 0 END FUNCTION FUNCTION LoadForm3 () LOCAL nStyle LOCAL form3 AS HWND form3 = BCX_WND("CHILD2FORM", form3Proc, "Non-Modal Form", Form1,120,120, 640,400, nStyle, 0) BCX_SETICON(form3, 123) BCX_BUTTON("Modal", form3, 201,560, 20, 72, 24) BCX_BUTTON("Modeless", form3, 202,560, 50, 72, 24) BCX_BUTTON("Close", form3, 203,560, 80, 72, 24) SHOW(form3) FUNCTION = 0 END FUNCTION BEGIN EVENTS form3Proc SELECT CASE CBMSG CASE WM_CREATE STATIC nWndNo = 0 SetWindowText(hWnd, "Window No. " & TRIM$(STR$(++nWndNo))) CASE WM_COMMAND IF CBCTLMSG = BN_CLICKED THEN IF CBCTL = 201 THEN BCX_MDIALOG(DialogOne,"BCX Modal Dialog",hWnd,110,110,110,110) END IF IF CBCTL = 202 THEN BCX_DIALOG(DialogTwo,"BCX Modeless Dialog",hWnd,110,110,110,110) END IF IF CBCTL = 203 THEN SendMessage(hWnd, WM_CLOSE, 0, 0) END IF END IF CASE WM_CLOSE DestroyWindow(hWnd) END SELECT END EVENTS BEGIN EVENTS form2Proc SELECT CASE CBMSG CASE WM_COMMAND IF CBCTLMSG = BN_CLICKED THEN IF CBCTL = 101 THEN BCX_MDIALOG(DialogOne,"BCX Modal Dialog",hWnd,110,110,110,110) END IF IF CBCTL = 102 THEN BCX_DIALOG(DialogTwo,"BCX Modeless Dialog",hWnd,110,110,110,110) END IF IF CBCTL = 103 THEN SendMessage(hWnd, WM_CLOSE, 0, 0) END IF END IF CASE WM_CLOSE ENDMODAL(hWnd) SetFocus(Form1) END SELECT END EVENTS