|
发表于 2010-8-8 06:07:52
|
显示全部楼层
Loads a panel into memory from a user interface resource (.uir) file or text user interface (.tui) file you created in the User Interface Editor.
The panel becomes a child panel of the parent panel you specify by parentPanelHandle. To make the panel a top-level panel, pass 0 for the parentPanelHandle.
The function returns a panel handle that you use in subsequent function calls to specify the panel. You must call DisplayPanel to make the panel visible.
If you call this function to load a panel as a child panel, you must do so in the same thread in which you create the parent panel.
The ATTR_REPORT_LOAD_FAILURE and ATTR_ALLOW_MISSING_CALLBACKS system attributes affect how this function behaves when it encounters an error. When you run a program in LabWindows/CVI and you enable debugging and the Break on»Library Errors option, a message appears when a LabWindows/CVI function returns an error. In general, this feature is not available when debugging is disabled. However, there is a special system attribute to enable error messages for LoadPanel, LoadPanelEx, LoadMenuBar, and LoadMenuBarEx. By default, the attribute is enabled.
By default, LoadPanel returns an error if LabWindows/CVI cannot find in the project any of the callback functions referenced in the .uir for the panel. If you want to allow a panel to be loaded in this case, enable the ATTR_ALLOW_MISSING_CALLBACKS attribute using the SetSystemAttribute function.
Refer to the list of system attributes for more information.
Note When you call LoadPanel, each panel and control callback name you specified in your .uir file is automatically linked to the function of the same name. To find callback functions, LabWindows/CVI searches all of the modules linked in your project. If a DLL is linked into your project or dynamically loaded, LabWindows/CVI searches only the symbols exported through the import library.
If you defined callback functions in a DLL but did not export them, LoadPanel cannot find the callback functions. Instead, you must call LoadPanelEx from the DLL.
Example
The following example code demonstrates how to load, display, and then discard a user interface panel. TESTPANEL is the constant name assigned to the panel in the Edit Panel dialog box in the User Interface Editor. panelHandle is the specifier that you use to identify the panel in subsequent User Interface Library function calls.
int main (int argc, char *argv[])
{
int panelHandle;
/* initialize the LabWindows/CVI Run-Time Engine and load the user interface panel into memory */
if (InitCVIRTE (0, argv, 0) == 0)
return -1;
if ((panelHandle = LoadPanel (0, "test.uir", TESTPANEL)) <= 0)
return -1;
/* display the panel and run the UI */
DisplayPanel (panelHandle);
RunUserInterface ();
/* free resources and return */
DiscardPanel (panelHandle);
CloseCVIRTE ();
return 0;
}
Prototype
int LoadPanel (int Parent_Panel_Handle, char Filename[], int Panel_Resource_ID);
|
|