本文整理汇总了C++中WndForm::GetClientAreaWindow方法的典型用法代码示例。如果您正苦于以下问题:C++ WndForm::GetClientAreaWindow方法的具体用法?C++ WndForm::GetClientAreaWindow怎么用?C++ WndForm::GetClientAreaWindow使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WndForm
的用法示例。
在下文中一共展示了WndForm::GetClientAreaWindow方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: xmlOpenResourceHelper
/**
* This function returns a WndForm created either from the ressources or
* from the XML file in XCSoarData(if found)
* @param LookUpTable The CallBackTable
* @param FileName The XML filename to search for in XCSoarData
* @param Parent The parent window (e.g. XCSoarInterface::main_window)
* @param resource The resource to look for
* @return The WndForm object
*/
WndForm *
LoadDialog(CallBackTableEntry *LookUpTable, SingleWindow &Parent,
const TCHAR* resource)
{
WndForm *form = NULL;
// Find XML file or resource and load XML data out of it
XMLNode node = xmlOpenResourceHelper(resource);
// TODO code: put in error checking here and get rid of exits in xmlParser
// If XML error occurred -> Error messagebox + cancel
if (node.isEmpty()) {
ShowXMLError();
return NULL;
}
// If the main XMLNode is of type "Form"
if (_tcsicmp(node.getName(), _T("Form")) != 0)
// Get the first child node of the type "Form"
// and save it as the dialog node
node = node.getChildNode(_T("Form"));
// If Node does not exists -> Error messagebox + cancel
if (node.isEmpty()) {
ShowXMLError();
return NULL;
}
// Determine the dialog style of the dialog
DialogStyle dialog_style = GetDialogStyle(node);
// Determine the dialog size
const TCHAR* Caption = GetCaption(node);
const RECT rc = Parent.get_client_rect();
ControlPosition pos = GetPosition(node, rc);
ControlSize size = GetSize(node, rc, pos);
InitScaleWidth(size, rc, dialog_style);
// Correct dialog size and position for dialog style
switch (dialog_style) {
case dsFullWidth:
pos.x = rc.left;
pos.y = rc.top;
size.cx = rc.right - rc.left; // stretch form to full width of screen
size.cy = rc.bottom - rc.top;
break;
case dsScaledCentered:
pos = SetPositionCentered(pos, rc, size);
break;
case dsScaled:
case dsFixed:
break;
}
// Create the dialog
WindowStyle style;
style.hide();
style.control_parent();
form = new WndForm(Parent, pos.x, pos.y, size.cx, size.cy, Caption, style);
// Set fore- and background colors
Color color;
if (StringToColor(node.getAttribute(_T("BackColor")), color))
form->SetBackColor(color);
// Load the children controls
LoadChildrenFromXML(*form, form->GetClientAreaWindow(), form->GetBackColor(),
LookUpTable, &node, dialog_style);
// If XML error occurred -> Error messagebox + cancel
if (XMLNode::GlobalError) {
ShowXMLError();
delete form;
return NULL;
}
// Return the created form
return form;
}
示例2: LoadXMLFromResource
/**
* This function returns a WndForm created either from the ressources or
* from the XML file in XCSoarData(if found)
* @param LookUpTable The CallBackTable
* @param FileName The XML filename to search for in XCSoarData
* @param Parent The parent window (e.g. XCSoarInterface::main_window)
* @param resource The resource to look for
* @param targetRect The area where to move the dialog if not parent
* @return The WndForm object
*/
WndForm *
LoadDialog(const CallBackTableEntry *lookup_table, SingleWindow &parent,
const TCHAR *resource, const PixelRect *target_rc)
{
WndForm *form = NULL;
// Find XML file or resource and load XML data out of it
XMLNode *node = LoadXMLFromResource(resource);
// TODO code: put in error checking here and get rid of exits in xmlParser
// If XML error occurred -> Error messagebox + cancel
assert(node != NULL);
// If the main XMLNode is of type "Form"
assert(StringIsEqual(node->getName(), _T("Form")));
// Determine the dialog size
const TCHAR* caption = GetCaption(*node);
const PixelRect rc = target_rc ? *target_rc : parent.get_client_rect();
ControlPosition pos = GetPosition(*node, rc, 0);
ControlSize size = GetSize(*node, rc, pos);
InitScaleWidth(size, rc);
// Correct dialog size and position for dialog style
switch (UIGlobals::GetDialogSettings().dialog_style) {
case dsFullWidth:
pos.x = rc.left;
pos.y = rc.top;
size.cx = rc.right - rc.left; // stretch form to full width of screen
size.cy = rc.bottom - rc.top;
break;
case dsScaledCentered:
pos = SetPositionCentered(pos, rc, size);
break;
case dsScaled:
case dsFixed:
break;
case dsScaledBottom:
size.cx = rc.right - rc.left; // stretch form to full width of screen
pos.y = rc.bottom - size.cy; // position at bottom of screen
break;
}
// Create the dialog
WindowStyle style;
style.Hide();
style.ControlParent();
PixelRect form_rc;
form_rc.left = pos.x;
form_rc.top = pos.y;
form_rc.right = form_rc.left + size.cx;
form_rc.bottom = form_rc.top + size.cy;
form = new WndForm(parent, *xml_dialog_look, form_rc, caption, style);
// Load the children controls
LoadChildrenFromXML(*form, form->GetClientAreaWindow(),
lookup_table, node);
delete node;
// If XML error occurred -> Error messagebox + cancel
assert(!XMLNode::GlobalError);
// Return the created form
return form;
}