File:  [WindowsNT SDKs] / mstools / mfc / help / mfc10wh.hlp
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 18:22:45 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: ntsdk-oct-1992, HEAD
Microsoft Windows NT Build 328 10-12-1992

?_y����6�i`l���*���>CreateButton("up", "&Up", "JI(`mfc10wh.hlp', `mfc10wh.hlp')")/&;)z4c.ERR;/***��
�
����|CONTEXT��|CTXOMAPG~|FONTC}|KWBTREET�|KWDATAR~|KWMAP�|SYSTEM|TOPIC�|TTLBTREE�"|bm0��KindOf mfc10wh.rtf 1023
3D681E871 AND_CATCH 1 AND_CATCH mfc10wh.rtf 1023
'   109E3 TRY 1 TRY mfc10wh.rtf 1023
3D681E871 AND_CATCH 1 AND_CATCH mfc10wh.rtf 1023
3529C21F5 END_CATCH 1 END_CATCH mfc10wh.rtf 1023
+ 774199A THROW 1 THROW mfc10wh.rtf 1023
54532355D THROW_LAST 1 THROW_LAST mfc10wh.rtf 1023
3529C21F5 END_CATCH 0 END_CATCH mfc10wh.rtf 1024
+ 3F4D233 CATCH 1 CATCH mfc10wh.rtf 1024
3D681E871 AND_CATCH 1 AND_CATCH mfc10wh.rtf 1024
'   109E3 TRY 1 TRY mfc10wh.rtf 1024
+ 3F4D233 CATCH 1 CATCH mfc10wh.rtf 1024
+ 774199A THROW 1 THROW mfc10wh.rtf 1024
3D681E871 AND_CATCH 1 AND_CATCH mfc10wh.rtf 1024
54532355D THROW_LAST 1 THROW_LAST mfc10wh.rtf 1024
+ 774199A THROW 0 THROW mfc10wh.rtf 1025
+ 3F4D233 CATCH 1 CATCH mfc10wh.rtf 1025
'   109E3 TRY 1 TRY mfc10wh.rtf 1025
+ 3F4D233 CATCH 1 CATCH mfc10wh.rtf 1025
54532355D THROW_LAST 1 THROW_LAST mfc10wh.�x�x����R!����^1���������^��Button StylesDisableButton("up")8�' �"������Button StylesC^�2 4�"�R�y��}Q�y�����ValueMeaningM�&1 0�9�R�y��}�y��������BS_AUTOCHECKBOXSame as a check box, except that an X appears in the check box when the user selects the box; the X disappears the next time the user selects the box. BS_AUTORADIOBUTTONSame as a radio button, except that when the user selects it, the button automatically highlights itself and removes the selection from any other auto-radio buttons in the same group. BS_AUTO3STATESame as a three-state check box, except that the box changes its state when the user selects it. The state cycles through checked, grayed, and normal. >
�d1 0��R�y��}�y��������BS_CHECKBOXCreates a small square that has text displayed to its right (unless this style is combined with the BS_LEFTTEXT style). BS_DEFPUSHBUTTONCreates a button that has a heavy black border. The user can select this button by pressing the ENTER key. This style is useful for enabling the user to quickly select the most likely option (the default option). BS_GROUPBOXCreates a rectangle in which other buttons can be grouped. Any text associated with this style is displayed in the rectangle's upper-left corner. ��&'3 4�!�R�y��}�y����������BS_LEFTTEXTWhen combined with a radio-button or check-box style, the text appears on the left side of the radio button or check box. BS_OWNERDRAWCreates an owner-draw button. The parent window is notified when the button is clicked. Notification includes a request to paint, invert, and disable the button. BS_PUSHBUTTONCreates a push button that posts a WM_COMMAND message to the owner window when the user selects the button. BS_RADIOBUTTONCreates a small circle that has text displayed to its right (unless this style is combined with the BS_LEFTTEXT style). Radio buttons are usually used in groups of related but mutually exclusive choices. ��d�- (�O�R�y��}�y����BS_3STATESame as a check box, except that the box can be grayed as well as checked. The grayed state typically is used to show that a check box has been disabled. U$'P	1���������P	�	5ACombo Box StylesDisableButton("up")<��	(  �(�������Combo Box StylesGP	�	2 4�*�R�߂=}Q�������StyleDescriptionC�	1 0�%�R�߂=}����������CBS_AUTOHSCROLLAutomatically scrolls the text in the edit control to the right when the user types a character at the end of the line. If this style is not set, only text which fits within the rectangular boundary is allowed. CBS_DROPDOWNSimilar to CBS_SIMPLE, except that the list box is not displayed unless the user selects an icon next to the selection field. CBS_DROPDOWNLISTSimilar to CBS_DROPDOWN, except that the edit control is replaced by a static text item which displays the current selection in the list box. ��	!G \���R�߂=}�����4.R��������-�����CBS_HASSTRINGSAn owner-draw combo box contains items consisting of strings. The combo box maintains the memory and pointers for the strings so the application can use the GetText member function to retrieve the text for a particular item. CBS_OEMCONVERTText entered in the combo box edit control is converted from the ANSI character set to the OEM character set and then back to ANSI. This ensures proper character conversion when the application calls the AnsiToOem member function to convert an ANSI string in the combo box to OEM characters. This style is most useful for combo boxes that contain filenames and applies only to combo boxes created with the CBS_SIMPLE or CBS_DROPDOWN styles. �5A3 4���R�߂=}������������CBS_OWNERDRAWFIXEDThe owner of the list box is responsible for drawing its contents; the items in the list box are all the same height. CBS_OWNERDRAWVARIABLEThe owner o!5A�f the list box is responsible for drawing its contents; the items in the list box are variable in height. CBS_SIMPLEThe list box is displayed at all times. The current selection in the list box is displayed in the edit control. CBS_SORTAutomatically sorts strings entered into the list box. P!�A1����������A�AFMEdit StylesDisableButton("up")75A�A(  ��������Edit StylesC�A�A2 4�"�R���'~Q�������StyleMeaning9��A8DA P���R���'~������������������ES_AUTOHSCROLLAutomatically scrolls text to the right by 10 characters when the user types a character at the end of the line. When the user presses the ENTER key, the control scrolls all text back to position zero. ES_AUTOVSCROLLAutomatically scrolls text up one page when the user presses ENTER  on the last line. ES_CENTERCenters text in a multiline edit control. ES_LEFTAligns text flush-left. ES_LOWERCASEConverts all characters to lowercase as they are typed into the edit control. ���AHG \�;�R���'~����������������ES_MULTILINEDesignates multiple-line edit control. (The default is single-line.) If the ES_AUTOVSCROLL style is specified, the edit control shows as many lines as possible and scrolls vertically when the user presses the ENTER key. If ES_AUTOVSCROLL is not given, the edit control shows as many lines as possible and beeps if ENTER is pressed when no more lines can be displayed. If the ES_AUTOHSCROLL style is specified, the multiple-line edit control automatically scrolls horizontally when the caret goes past the right edge of the control. To start a new line, the user must press ENTER. If ES_AUTOHSCROLL is not given, the control automatically wraps words to the beginning of the next line when necessary; a new line is also started if ENTER is pressed. The position of the wordwrap is determined by the window size. If the window size changes, the wordwrap position changes, and the text is redisplayed. �H8D�K= H���R���'~�����������-�����Multiple-line edit controls can have scroll bars. An edit control with scroll bars processes its own scroll-bar messages. Edit controls without scroll bars scroll as described above, and process any scroll messages sent by the parent window. ES_NOHIDESELNormally, an edit control hides the selection when the control loses the input focus, and inverts the selection when the control receives the input focus. Specifying ES_NOHIDESEL deletes this default action. ES_OEMCONVERTText entered in the edit control is converted from the ANSI character set to the OEM character set and then back to ANSI. This ensures proper character conversion when the application calls the AnsiToOem member function to convert an ANSI string in the edit control to OEM characters. This style is most useful for edit controls that contain filenames. �hHFM= H���R���'~�����ʂ�р��������ES_PASSWORDDisplays all characters as an asterisk (*) as they are typed into the edit control. An application can use the SetPassWordChar member function to change the character that is displayed. ES_RIGHTAligns text flush-right in a multiline edit control. ES_UPPERCASEConverts all characters to uppercase as they are typed into the edit control. T#�K�M1�
���������M�Mb�List Box StylesDisableButton("up");FM�M(  �&�������List Box StylesC�MN2 4�"�R�݂?}Q�������StyleMeaning`�M��O l�#�R�݂?}���������4.R�����㈛C�����LBS_EXTENDEDSELThe user can select multiple items using the SHIFT key and the mouse or special key combinations. LBS_HASSTRINGSSpecifies an owner-draw list box which contains items consisting of strings. The list box maintains the memory and pointers for the strings so the application can use the GetText member function to retrieve the text for a particular item. LBS_MULTICOLUMNSpecifies a multN��FMicolumn list box that is scrolled horizontally. The SetColumnWidth member function sets the width of the columns. "�N��1 0���R�݂?}����������LBS_MULTIPLESELString selection is toggled each time the user clicks or double-clicks the string. Any number of strings can be selected. LBS_NOINTEGRALHEIGHTThe size of the list box is exactly the size specified by the application when it created the list box. Normally, Windows sizes a list box so that the list box does not display partial items. LBS_NOREDRAWList-box display is not updated when changes are made. This style can be changed at any time by sending a WM_SETREDRAW message. ����d�5 8��R�݂?}��������������LBS_NOTIFYParent window receives an input message whenever the user clicks or double-clicks a string. LBS_OWNERDRAWFIXEDThe owner of the list box is responsible for drawing its contents; the items in the list box are the same height. LBS_OWNERDRAWVARIABLEThe owner of the list box is responsible for drawing its contents; the items in the list box are variable in height. LBS_SORTStrings in the list box are sorted alphabetically. LBS_STANDARDStrings in the list box are sorted alphabetically and the parent window receives an input message whenever the user clicks or double-clicks a string. The list box contains borders on all sides. ����b�5 8���R�݂?}����������LBS_USETABSTOPSAllows a list box to recognize and expand tab characters when drawing its strings. The default tab positions are 32 dialog units. (A dialog unit is a horizontal or vertical distance. One horizontal dialog unit is equal to 1/4 of the current dialog base width unit. The dialog base units are computed based on the height and width of the current system font. The GetDialogBaseUnits member function returns the current dialog base units in pixels.) LBS_WANTKEYBOARDINPUTThe owner of the list box receives WM_VKEYTOITEM or WM_CHARTOITEM messages whenever the user presses a key when the list box has input focus. This allows an application to perform special processing on the keyboard input. V%d���1�	��������������Scroll Bar StylesDisableButton("up")=b���(  �*�������Scroll Bar StylesC��8�2 4�"�R�m��|Q�m�����StyleMeaning����1�U x�I�R�m��|�m���\僭������\僭������\僭�����SBS_BOTTOMALIGNUsed with the SBS_HORZ style. The bottom edge of the scroll bar is aligned with the bottom edge of the rectangle specified  in the Create member function. The scroll bar has the default height for system scroll bars. SBS_HORZDesignates a horizontal scroll bar. If neither the SBS_BOTTOMALIGN nor SBS_TOPALIGN style is specified, the scroll bar has the height, width, and position given in the Create member function. SBS_LEFTALIGNUsed with the SBS_VERT style. The left edge of the scroll bar is aligned with the left edge of the rectangle specified in the Create member function. The scroll bar has the default width for system scroll bars. �8�<�G \���R�m��|�m���\僭������\僭�����SBS_RIGHTALIGNUsed with the SBS_VERT style. The right edge of the scroll bar is aligned with the right edge of the rectangle specified in the Create member function. The scroll bar has the default width for system scroll bars. SBS_SIZEBOXDesignates a size box. If neither the SBS_SIZEBOXBOTTOMRIGHTALIGN nor SBS_SIZEBOXTOPLEFTALIGN style is specified, the size box has the height, width, and position given in the Create member function. I1���G \��R�m��|�m���\僭������\僭�����SBS_SIZEBOXBOTTOMRIGHTALIGNUsed with the SBS_SIZEBOX style. The lower-right corner of the size box is aligned with the lower-right corner of the rectangle specified in the Create member function. The size box has the default size for system size boxes. SBS_SIZEBOXTOPLEFTALIGNUsed with the SBS_SIZEBOX style. The upper-left corner of the size box is aligned with the upper-<���b�left corner of the rectangle specified in the Create member function. The size box has the default size for system size boxes. ��<���G \�e�R�m��|�m���\僭������\僭�����SBS_TOPALIGNUsed with the SBS_HORZ style. The top edge of the scroll bar is aligned with the top edge of the rectangle specified in the Create member function. The scroll bar has the default height for system scroll bars. SBS_VERTDesignates a vertical scroll bar. If neither the SBS_RIGHTALIGN nor SBS_LEFTALIGN style is specified, the scroll bar has the height, width, and position given in the Create member function. R!����1�
�����������VStatic StylesDisableButton("up")9���(  �"�������Static StylesC��X�2 4�"�R�Q��}Q�Q�����StyleMeaningV%���1 0�K�R�Q��}�Q��������SS_BLACKFRAMESpecifies a box with a frame drawn with the same color as window frames. This color is black in the default Windows color scheme. SS_BLACKRECTSpecifies a rectangle filled with the color used to draw window frames. This color is black in the default Windows color scheme. SS_CENTERDesignates a simple rectangle and displays the given text centered in the rectangle. The text is formatted before it is displayed. Words that would extend past the end of a line are automatically wrapped to the beginning of the next centered line. e(X��= H�Q�R�Q��}�Q������������SS_GRAYFRAMESpecifies a box with a frame drawn with the same color as the screen background (desktop). This color is gray in the default Windows color scheme. SS_GRAYRECTSpecifies a rectangle filled with the color used to fill the screen background. This color is gray in the default Windows color scheme. SS_ICONDesignates an icon displayed in the dialog box. The given text is the name of an icon (not a filename) defined elsewhere in the resource file. The nWidth and nHeight parameters are ignored; the icon automatically sizes itself. �m����1 0���R�Q��}�Q��������SS_LEFTDesignates a simple rectangle and displays the given text flush-left in the rectangle. The text is formatted before it is displayed. Words that would extend past the end of a line are automatically wrapped to the beginning of the next flush-left line. SS_LEFTNOWORDWRAPDesignates a simple rectangle and displays the given text flush-left in the rectangle. Tabs are expanded, but words are not wrapped. Text that extends past the end of a line is clipped. SS_NOPREFIXUnless this style is specified, windows will interpret any & characters in the control's text to be accelerator prefix characters. In this case, the & is removed and the next character in the string is underlined. If a static control is to contain text where this feature is not wanted, SS_NOPREFIX may be added. This static-control style may be included with any of the defined static controls. ����/ ,���R�Q��}�Q������You can combine SS_NOPREFIX with other styles by using the bitwise OR operator. This is most often used when filenames or other strings that may contain an & need to be displayed in a static control in a dialog box. SS_RIGHTDesignates a simple rectangle and displays the given text flush-right in the rectangle. The text is formatted before it is displayed. Words that would extend past the end of a line are automatically wrapped to the beginning of the next flush-right line. �S��V3 4���R�Q��}�Q����������SS_SIMPLEDesignates a simple rectangle and displays a single line of text flush-left in the rectangle. The line of text cannot be shortened or altered in any way. (The control's parent window or dialog box must not process the WM_CTLCOLOR message.) SS_USERITEMSpecifies a user-defined item. SS_WHITEFRAMESpecifies a box with a frame drawn with the same color as window backgrounds. This color is white in the default Windows color scheme. SS_WHITERECTSpecifies a rectangle filled with the color used to fill windo��V��w backgrounds. This color is white in the default Windows color scheme. R!���1\�����������BWindow StylesDisableButton("up")9V�(  �"�������Window StylesC�$2 4�"�R�Q��}Q�Q�����StyleMeaningR%�v- (�K�R�Q��}�Q����DS_LOCALEDITSpecifies that edit controls in the dialog box will use memory in the application's data segment. By default, all edit controls in dialog boxes use memory outside the application's data segment. This feature may be suppressed by adding the DS_LOCALEDIT flag to the STYLE command for the dialog box. If this flag is not used, EM_GETHANDLE and EM_SETHANDLE messages must not be used since the storage for the control is not in the application's data segment. This feature does not affect edit controls created outside of dialog boxes. \'$�5 8�O�R�Q��}�Q������������DS_MODALFRAMECreates a dialog box with a modal dialog-box frame that can be combined with a title bar and System menu by specifying the WS_CAPTION and WS_SYSMENU styles. DS_NOIDLEMSGSuppresses WM_ENTERIDLE messages that windows would otherwise send to the owner of the dialog box while the dialog box is displayed. DS_SYSMODALCreates a system-modal dialog box. WS_BORDERCreates a window that has a border. WS_CAPTIONCreates a window that has a title bar (implies the WS_BORDER style). This style cannot be used with the WS_DLGFRAME style. �v�3 4���R�Q��}�Q����������WS_CHILDCreates a child window. Cannot be used with the WS_POPUP style. WS_CHILDEDITSame as the WS_CHILD style. WS_CLIPCHILDRENExcludes the area occupied by child windows when drawing within the parent window. Used when creating the parent window. WS_CLIPSIBLINGSClips child windows relative to each other; that is, when a particular child window receives a paint message, the WS_CLIPSIBLINGS style clips all other overlapped child windows out of the region of the child window to be updated. (If WS_CLIPSIBLINGS is not given and child windows overlap, it is possible, when drawing within the client area of a child window, to draw within the client area of a neighboring child window.) For use with the WS_CHILD style only. R�67 <�7�R�Q��}�Q����������WS_DISABLEDCreates a window that is initially disabled. WS_DLGFRAMECreates a window with a double border but no title. WS_GROUPSpecifies the first control of a group of controls in which the user can move from one control to the next by using the DIRECTION keys. All controls defined with the WS_GROUP style after the first control belong to the same group. The next control with the WS_GROUP style ends the style group and starts the next group (that is, one group ends where the next begins). Only dialog boxes use this style. ��A
9 @���R�Q��}�Q����������������WS_HSCROLLCreates a window that has a horizontal scroll bar. WS_ICONICSame as the WS_MINIMIZE style. WS_MAXIMIZECreates a window of maximum size. WS_MAXIMIZEBOXCreates a window that has a maximize box. WS_MINIMIZECreates a window that is initially minimized. For use with the WS_OVERLAPPED style only. WS_MINIMIZEBOXCreates a window that has a minimize box. WS_OVERLAPPEDCreates an overlapped window. An overlapped window has a caption and a border. �6L3 4���R�Q��}�Q����������WS_OVERLAPPEDEDITCreates an overlapped window having the WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, and WS_MAXIMIZEBOX styles. WS_POPUPCreates a pop-up window. Cannot be used with the WS_CHILD style. WS_POPUPEDITCreates a pop-up window that has the WS_BORDER, WS_POPUP, and WS_SYSMENU styles. The WS_CAPTION style must be combined with the WS_POPUPEDIT style to make the system menu visible. WS_SIZEBOXSame as the WS_THICKFRAME style. �A
oA? L���R�Q��}�Q��������������WS_SYSMENUCreates a window that has a System-menu box in its title bar. Used only for windows with title bars. WS_LoAVTABSTOPSpecifies one of any number of controls through which the user can move by using the TAB key. The TAB key moves the user to the next control specified by the WS_TABSTOP style. Only dialog boxes use this style. WS_THICKFRAMECreates a window with a thick frame that can be used to size the window. WS_TILEDSame as the WS_OVERLAPPED style. v3L�BC T�g�R�Q��}�Q��������
�E�������WS_TILEDEDITSame as the WS_OVERLAPPEDEDIT style. WS_VISIBLECreates a window that is initially visible. This applies to overlapped and pop-up windows. For overlapped windows, the Y parameter is used as a ShowWindow function parameter. WS_VSCROLLCreates a window that has a vertical scroll bar. T#oA9C1
��������9CtCPEPOINT StructureDisableButton("up");�BtC(  �&�������POINT Structure'9C�C$ ������_7tC�C(  �n�0���	�����typedef struct tagPOINT {    int x;    y;} POINT;�I�CzD7 >��������������The POINT structure defines the x and y coordinates of a point. G�C�D1 2�,�R����������MemberDescription�YzDPE6 <���R��������������xSpecifies the x-coordinate of a point. ySpecifies the y-coordinate of a point. S"�D�E1����������E�E�IRECT StructureDisableButton("up"):PE�E(  �$�������RECT Structure'�EF$ ������U�E�F* $���0���	�������typedef struct tagRECT {    int left;    top;    int right;    bottom;} RECT;�jFG+ &����������The RECT structure defines the coordinates of the upper-left and lower-right corners of a rectangle. G�F_G1 2�,�R���Q�������MemberDescriptiont-G�HG \�[�R����������������������leftSpecifies the x-coordinate of the upper-left corner of a rectangle. topifies the y-coordinate of the upper-left corner of a rectangle. rightSpecifies the x-coordinate of the lower-right corner of a rectangle. bottomifies the y-coordinate of the lower-right corner of a rectangle. 4_GI(  ��������Comments�\�H�I+ &����������The width of the rectangle defined by the RECT structure must not exceed 32,767 units. `/I�I1���������	�I5J�OCOMPAREITEMSTRUCT StructureDisableButton("up")G�I5J(  �>�������COMPAREITEMSTRUCT Structure'�I\J$ ��������5JVK. *���0���	����������typedef struct tagCOMPAREITEMSTRUCT {    UINT   CtlType;    UINT   CtlID;    HWND   hwndItem;    UINT   itemID1;    DWORD  itemData1;    UINT   itemID2;    DWORD  itemData2;} COMPAREITEMSTRUCT;��\JL, &�1��������The COMPAREITEMSTRUCT structure supplies the identifiers and application-supplied data for two items in a sorted owner-draw combo box or list box. HVKbL2 4�,�R�7��~Q�7�����MemberDescription.�L�NP n���R�7��~�7���������������������CtlTypeIs ODT_LISTBOX (which specifies an owner-draw list box) or ODT_COMBOBOX (which specifies an owner-draw combo box). CtlIDIs the control ID for the list box or combo box. hwndItemIs the window handle of the control. itemID1Is the index of the first item in the list box or combo box being compared. itemData1Is application-supplied data for the first item being compared. This value was passed in the call that added the item to the combo or list box. /�bL�O8 >���R�7��~�7���������itemID2Is the index of the second item in the list box or combo box being compared. itemData2Is application-supplied data for the second item being compared. This value was passed in the call that added the item to the combo or list box. Z)�N%�1���������
%�f��PAINTSTRUCT Stru�O%��OctureDisableButton("up")A�Of�(  �2�������PAINTSTRUCT Structure'%���$ ��������f�^�- (�I�0���	���������typedef struct tagPAINTSTRUCT {    HDC  hdc;    BOOL fErase;    RECT rcPaint;    BOOL fRestore;    BOOL fIncUpdate;    BYTE rgbReserved[16];} PAINTSTRUCT;H����2 4�,�R�ρM~Q�������MemberDescriptionI�^��L f���R�ρM~�������������������hdcIdentifies the display context to be used for painting. fEraseSpecifies whether the background needs to be redrawn. It is not zero if the application should redraw the background. The application is responsible for drawing the background if a Windows window-class is created without a background brush, (see the description of the hbrBackground member of the WNDCLASS structure). rcPaintSpecifies the upper-left and lower-right corners of the rectangle in which the painting is requested. ����@ N���R�ρM~���������������fRestoreReserved member. It is used internally by Windows. fIncUpdateReserved member. It is used internally by Windows. rgbReserved[16]Reserved member. A reserved block of memory used internally by Windows. `/�k�1S
��������k����MEASUREITEMSTRUCT StructureDisableButton("up")G���(  �>�������MEASUREITEMSTRUCT Structure'k�م$ ������������- (�o�0���	���������typedef struct tagMEASUREITEMSTRUCT {    WORD   CtlType;    WORD   CtlID;    WORD   itemID;    WORD   itemWidth;    WORD   itemHeight;    DWORD  itemData} MEASUREITEMSTRUCT;R م�2 2�A����������The MEASUREITEMSTRUCT data structure informs Windows of the dimensions of an owner-draw control. This allows Windows to process user interaction with the control correctly. The owner of an owner-draw control receives a pointer to this structure as the lParam parameter of an WM_MEASUREITEM message. The owner-draw control sends this message to its owner window when the control is created; the owner then fills in the appropriate members in the structure for the control and returns. This structure is common to all owner-draw controls. H��W�2 4�,�R�A��~Q�A�����MemberDescription}N�ԉ/ .���R�A��~�A�����CtlTypeIs the control type. The values for control types are as follows: CW��2 4�"�R�قi~Q�������ValueMeaning��ԉ̊3 4��R�قi~������������ODT_BUTTONOwner-draw button. ODT_COMBOBOXOwner-draw combo box. ODT_LISTBOXOwner-draw list box. ODT_MENUOwner-draw menu. ���ǍH ^�g�R�A��~�A�����������������CtlIDIs the control ID for a combo box, list box, or button. This member is not used for a menu. itemIDIs the menu-item ID for a menu or the list-box item ID for a variable-height combo box or list box. This member is not used for a fixed-height combo box or list box, or for a button. itemWidthSpecifies the width of a menu item. The owner of the owner-draw menu item must fill this member before returning from the message. itemHeightSpecifies the height of an individual item in a list box or a menu. Before returning from the message, the owner of the owner-draw combo box, list box, or menu item must fill out this member. The maximum height of a list box item is 255. 1�̊��` ����R�A��~�A����_u2����a�s����a�y������Q�����itemDataContains the value that was passed to the combo box by CComboBox::AddString or CComboBox::InsertString, or passed to the list box by CListBox::AddString or CListBox::InsertString. 4Ǎ,�(  ��������Comments�}���+ &����������Failure to fill out the proper members in the MEASUREITEMSTRUCT structure will cause improper operation of the control. ,���],,�i�1D��������i����DRAWITEMSTRUCT StructureDisableButton("up")D���(  �8�������DRAWITEMSTRUCT Structure'i���$ �����������0 .���0���	������������typedef struct tagDRAWITEMSTRUCT {    UINT   CtlType;    UINT   CtlID;    UINT   itemID;    UINT   itemAction;    UINT   itemState;    HWND   hwndItem;    HDC    hDC;    RECT   rcItem;    DWORD  itemData;} DRAWITEMSTRUCT;H��6�2 4�,�R�I��~Q�I�����MemberDescription}N����/ .���R�I��~�I�����CtlTypeIs the control type. The values for control types are as follows: C6���2 4�"�R��i~Q�������ValueMeaning������3 4��R��i~������������ODT_BUTTONOwner-draw button. ODT_COMBOBOXOwner-draw combo box. ODT_LISTBOXOwner-draw list box. ODT_MENUOwner-draw menu. ����s�D V�	�R�I��~�I�������������CtlIDIs the control ID for a combo box, list box or button. This member is not used for a menu. itemIDIs the menu-item ID for a menu or the index of the item in a list box or combo box. For an empty list box or combo box, this member can be -1. This allows the application to draw only the focus rectangle at the coordinates specified by the rcItem member even though there are no items in the control. This indicates to the user whether the list box or combo box has input focus. The setting of the bits in the itemAction member determines whether the rectangle is to be drawn as though the list box or combo box has input focus. �d���/ .���R�I��~�I�����itemActionDefines the drawing action required. This will be one or more of the following bits: Cs�I�2 4�"�R�=�~Q�=�����ValueMeaning����= H��R�=�~�=������������ODA_DRAWENTIREThis bit is set when the entire control needs to be drawn. ODA_FOCUSThis bit is set when the control gains or loses input focus. The itemState member should be checked to determine whether the control has focus. ODA_SELECTThis bit is set when only the selection status has changed. The itemState member should be checked to determine the new selection state. ��I���0 .���R�I��~�I�����itemStateSpecifies the visual state of the item after the current drawing action takes place. That is, if a menu item is to be grayed, the state flag ODS_GRAYED will be set. The state flags are: C�B�2 4�"�R��a~Q�������ValueMeaning�{����5 8���R��a~��������������ODS_CHECKEDThis bit is set if the menu item is to be checked. This bit is used only in a menu. ODS_DISABLEDThis bit is set if the item is to be drawn as disabled. ODS_FOCUSThis bit is set if the item has input focus. ODS_GRAYEDThis bit is set if the item is to be grayed. This bit is used only in a menu. ODS_SELECTEDThis bit is set if the item's status is selected. 1�B�#�R r���R�I��~�I�������������������hwndItemFor combo boxes, list boxes and buttons, this member specifies the window handle of the control; for menus, it contains the handle of the menu (HMENU) containing the item. hDCIdentifies a device context; this device context must be used when performing drawing operations on the control. rcItemIs a rectangle in the device context specified by the hDC member that defines the boundaries of the control to be drawn. Windows automatically clips anything the owner draws in the device context for combo boxes, list boxes, and buttons, but does not clip menu items. When drawing menu items, the owner must ensure that the owner does not draw outside the boundaries of the rectangle defined by the rcItem member. �r����/ .���R�I��~�I�����itemDataFor a combo box or list box, this member contains the value that was passed by one of the following: �o#��[ ����py��R���_u2�����a�s���������a�y�������Q�����CComboBox::AddString CComboBox::InsertString CListBox::AddString CListBox::InsertString [*���1��������
�7	CREATESTRUCT StructureDisableButton("up")B�7(  �4�������CREATESTRUCT Structure'�^$ ������}J7�3 4���0���	���������������typedef struct tagCREATESTRUCT {    LPSTR      lpCreateParams;    HINSTANCE  hInstance;    HMENU      hMenu;    HWND       hwndParent;    int        cy;    int        cx;    int        y;    int        x;    LONG       style;    LPCSTR     lpszName;    LPCSTR     lpszClass;    DWORD      dwExStyle;} CREATESTRUCT;T^Z+ &����������The CREATESTRUCT structure defines the parameters used to initialize a window. H��2 4�,�R���g~Q�������MemberDescription!�Z�^ ����R���g~�����������������������������lpCreateParamslpCreateParams Points to data to be used for creating the window. hInstanceIdentifies the module-instance handle of the module that owns the new window. hMenuIdentifies the menu to be used by the new window. hwndParentIdentifies the window that owns the new window. This member is NULL if the new window is a top-level window. cySpecifies the height of the new window. cxSpecifies the width of the new window. &���@ N���R���g~���������������ySpecifies the y-coordinate of the upper-left corner of the new window. Coordinates are relative to the parent window if the new window is a child window. Otherwise, the coordinates are relative to the screen origin. xSpecifies the x-coordinate of the upper-left corner of the new window. Coordinates are relative to the parent window if the new window is a child window. Otherwise, the coordinates are relative to the screen origin. styleSpecifies the new window's style. 4��	@ N���R���g~���������������lpszNamePoints to a null-terminated string that specifies the new window's name. lpszClassPoints to a null-terminated string that specifies the new window's Windows class name. dwExStyleSpecifies extended style for the new window. _.�|	1���������|	�	k
DELETEITEMSTRUCT StructureDisableButton("up")F	�	(  �<�������DELETEITEMSTRUCT Structure'|	�	$ ���������	�
, &�/�0���	��������typedef struct tagDELETEITEMSTRUCT {    UINT CtlType    UINT  CtlID;    UINT  itemID;    HWND  hwndItem;    DWORD itemData;} DELETEITEMSTRUCT;H�	�
2 4�,�R�7��~Q�7�����MemberDescriptionw��
k
� ΀��R�7��~�7��������������������_u2����a�s����a�y������Q�����CtlTypeContains ODT_LISTBOX (which specifies an owner-draw list box) or ODT_COMBOBOX (which specifies an owner-draw combo box). CtlIDContains the control ID for the list box or combo box. itemIDContains the index of the item in the list box or combo box being removed. hwndItemContains the window handle of the control. itemDataContains the value passed to the control by CComboBox::AddString, CComboBox::InsertString, CListBox::AddString or CListBox::InsertString. V%�
�
1U	���������
�
�FClipboard FormatsDisableButton("up")=k
�
(  �*�������Clipboard FormatsjE�
h% ��������The following list contains the system-defined Clipboard formats: C�
�2 4�"�R�]��}Q�]�����ValueMeaningH
h�@; D��R�]��}�]��������������CF_BITMAPThe data is a bitmap. CF_DIBThe data is a memory block containing a BITMAPINFO structure followed by the bitmap data. CF_DIFThe data is in Software Arts' Data Interchange Format. CF_DSPBITMAPThe data is a bitmap representation of a private format. This data is di��@k
splayed in bitmap format in lieu of the privately formatted data. CF_DSPMETAFILEPICTThe data is a metafile representation of a private data format. This data is displayed in metafile-picture format in lieu of the privately formatted data. H�GC9 @��R�]��}�]������������CF_DSPTEXTThe data is a textual representation of a private data format. This data is displayed in text format in lieu of the privately formatted data. CF_METAFILEPICTThe data is a metafile (see description of the METAFILEPICT structure). CF_OEMTEXTThe data is an array of text characters in the OEM character set. Each line ends with a carriage return-linefeed (CR-LF) combination. A null character signals the end of the data. CF_OWNERDISPLAYThe data is in a private format that the clipboard owner must display. p=�@�D3 4�{�R�]��}�]����������CF_PALETTEThe data is a color palette. CF_SYLKThe data is in Microsoft Symbolic Link (SYLK) format. CF_TEXTThe data is an array of text characters. Each line ends with a carriage return/linefeed (CR-LF) combination. A null character signals the end of the data. CF_TIFFThe data is in Tag Image File Format. ��GC�F3 4�[��������y������Private data formats in the range of CF_PRIVATEFIRST to CF_PRIVATELAST are not automatically freed when the data is deleted from the clipboard. Data handles associated with these formats should be freed upon receiving a WM_DESTROYCLIPBOARD message. Private data formats in the range of CF_GDIOBJFIRST to CF_GDIOBJLAST will be automatically deleted with a call to DeleteObject when the data is deleted from the clipboard. Y(�D�F1����������F0G�LMouse Hit-Test enumsDisableButton("up")@�F0G(  �0�������Mouse Hit-Test enums���FH; D�i�������������The following enumerated values are passed to the CWnd::OnMessage member functions that handle mouse messages, such as CWnd::OnMouseActivate and CWnd::OnNcLButtonDblClk. C0GbH2 4�"�R���~Q�������ValueMeaning�HuJ? L���R���~������������������������HTBOTTOMIn the lower horizontal border of window. HTBOTTOMLEFTIn the lower-left corner of window border. HTBOTTOMRIGHTIn the lower-right corner of window border. HTCAPTIONIn a caption area. HTCLIENTIn a client area. HTERRORSame as HTNOWHERE except that default message processing produces a system beep to indicate an error. HTGROWBOXIn a size box. HTHSCROLLIn the horizontal scroll bar. HTLEFTIn the left border of window. HTMENUIn a menu area. 1�bH�L? L���R���~������������������������HTNOWHEREOn the screen background or on a dividing line between windows. HTREDUCEIn a minimize box. HTRIGHTIn the right border of window. HTSIZESame as HTGROWBOX. HTSYSMENUIn a control-menu box (close box in child windows). HTTOPIn the upper horizontal border of window. HTTOPLEFTIn the upper-left corner of window border. HTTOPRIGHTIn the upper-right corner of window border. HTTRANSPARENTIn a window currently covered by another window. HTVSCROLLIn the vertical scroll bar. IuJ�L, (�:�R���~������HTZOOMIn a maximize box. �\�L|M1�	��������|M�M&�class CBitmapEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_003')")9�L�M(  �"�������class CBitmap8|M�M) "��2�������Descriptionn;�M[O3 4�w�2����������The CBitmap class encapsulates a Windows graphical design interface (GDI) bitmap and provides member functions to manipulate the bitmap. To use a CBitmap object, construct the object, install a bitmap handle in it with one of the initialization member functions, and then call the object's member functions. ;�M�O) "�$�2�������Public MembersE[O�O) "�8�2�������Construction/Destructionh-�OO�; F�Z�R�	��	�OO��L�q ��������CBitmapConstructs a CBitmap object. ;�O��) "�$�2�������Initialization�3O�#�f ��g�R�s��}�s�>!������
��������ɴt���������������LoadBitmapInitializes the object by loading a named bitmap resource from the application's executable file and attaching the bitmap to the object. LoadOEMBitmapInitializes the object by loading a predefined Windows bitmap and attaching the bitmap to the object. CreateBitmapInitializes the object with a device-dependent memory bitmap that has a specified width, height, and bit pattern. CreateBitmapIndirectInitializes the object with a bitmap with the width, height, and bit pattern (if one is specified) given in a BITMAP structure. 2���U�D V���R�s��}�s�U$�N�������GxZ������CreateCompatibleBitmapInitializes the object with a bitmap so that it is compatible with a specified device. CreateDiscardableBitmapInitializes the object with a discardable bitmap that is compatible with a specified device. 7#���) "��2�������Operations�U�&�� ڀ)�R�
�~�
�H������������㍼�B�������w�������c�VL������_c������c�VL�����FromHandleReturns a pointer to a CBitmap object when given a handle to a Windows HBITMAP bitmap. SetBitmapBitsSets the bits of a bitmap to the specified bit values. GetBitmapBitsCopies the bits of the specified bitmap into the specified buffer. SetBitmapDimensionAssigns a width and height to a bitmap in 0.1-millimeter units. GetBitmapDimensionReturns the width and height of the bitmap. The height and width are assumed to have been set previously by the SetBitmapDimension member function. �]����1�������������o�CBitmap::CBitmapEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")<&���(  �(�������CBitmap::CBitmap:��*�, (��r�=���~����CBitmap();)��S�& ��2������4*���) "��2�������Remarks��S�B�4 6��2�����������Constructs a CBitmap object. The resulting object must be initialized with one of the initialization member functions. See Also-���o�m ����2����>!Ā����
������ɴt���������U$�N�����GxZ������CBitmap::LoadBitmap, CBitmap::LoadOEMBitmap, CBitmap::CreateBitmap, CBitmap::CreateBitmapIndirect, CBitmap::CreateCompatibleBitmap, CBitmap::CreateDiscardableBitmap �bB��1	���������D�W�CBitmap::CreateBitmapEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")Bo�D�) "�2�2�������CBitmap::CreateBitmap�g���J d���r�=���~��������������BOOL CreateBitmap( int nWidth, int nHeight, BYTE nPlanes, BYTE nBitcount, LPSTR lpBits );)D��& ��2������K��i�2 4�2�R�=��~Q�=�����ParameterDescription���D�V z��R�=��~�=�����������������������nWidthSpecifies the width (in pixels) of the bitmap. nHeightSpecifies the height (in pixels) of the bitmap. nPlanesSpecifies the number of color planes in the bitmap. nBitcountSpecifies the number of color bits per display pixel. lpBitsPoints to a short-integer array that contains the initial bitmap bit values. If it is NULL, the new bitmap is left uninitialized. 4i�x�) "��2�������Remarks�3D��_ ��g�2��������������`.�����[�������2�����Initializes a device-dependent memory bitmap that has the specified width, height, and bit pattern. For a color bitmap, either the nPlanes or nBitcount parameter should be set to 1. If both of these parameters are set to 1, CreateBitmap creates a monochrome bitmap. Although a bitmap cannx��o�ot be directly selected for a display device, it can be selected as the current bitmap for a "memory device context" by using CDC::SelectObject or CMetaFileDC::SelectObject and copied to any compatible device context by using the CDC::BitBlt function.  �x�6�@ N���2���������y���������When an application has finished using the bitmap created by the CreateBitmap function, it should select the bitmap out of the device context and then remove the bitmap by using the DeleteObject function. ReturnsZ+���/ .�V�2���������TRUE if successful; otherwise FALSE. 56���) "��2�������See Also�J��W�H `���2�����`.�����[�������2������CDC::SelectObject, CMetaFileDC::SelectObject, CDC::BitBlt, �j����1�����������<���CBitmap::CreateBitmapIndirectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")J!W�<�) "�B�2�������CBitmap::CreateBitmapIndirectg5����2 4�j�r�=���~������BOOL CreateBitmapIndirect( LPBITMAP lpBitmap );)<���& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescription�X����5 :���R�=��~�=�������lpBitmapPoints to a BITMAP structure that contains information about the bitmap. 4���) "��2�������Remarks�/��p�i ��_�2��������`.�����[�������2����__Zπ��㭣嫀����Initializes a bitmap that has the width, height, and bit pattern (if one is specified) given in the structure pointed to by lpBitmap. Although a bitmap cannot be directly selected for a display device, it can be selected as the current bitmap for a memory device context by using CDC::SelectObject or CMetaFileDC::SelectObject and copied to any compatible device context by using the CDC::BitBlt or CDC::StretchBlt function. (The CDC::PatBlt function can copy the bitmap for the current brush directly to the display device context.) ���|�] ��_�2���������gF�������2�����������If the BITMAP structure pointed to by the lpBitmap parameter has been filled in by using the GetObject function, the bits of the bitmap are not specified, and the bitmap is uninitialized. To initialize the bitmap, an application can use a function such as CDC::BitBlt or ::SetDIBits to copy the bits from the bitmap identified by the first parameter of GetObject to the bitmap created by CreateBitmapIndirect. �p���@ N���2���������y���������When an application has finished using the bitmap initialized by CreateBitmapIndirect, it should select the bitmap out of the device context and then use the DeleteObject function to delete the bitmap. ReturnsZ+|���/ .�V�2���������TRUE if successful; otherwise FALSE. 5��(�) "��2�������See Also�I����H `���2�����`.�����[�������2������CDC::SelectObject, CMetaFileDC::SelectObject, CDC::BitBlt �l(�V�1�
��������V���%CBitmap::CreateCompatibleBitmapEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")L#����) "�F�2�������CBitmap::CreateCompatibleBitmap�KV�+�> L���r�=���~����������BOOL CreateCompatibleBitmap( CDC* pDC, int nWidth, int nHeight );)��T�& ��2������K+���2 4�2�R�=��~Q�=�����ParameterDescription��T�u�@ N�-�R�=��~�=�������������pDCSpecifies the device context. nWidthSpecifies the width (in bits) of the bitmap. nHeightSpecifies the height (in bits) of the bitmap. 4����) "��2�������Remarks��u�s: B�	�2�������������Initializes a bitmap that is��s�� compatible with the device specified by pDC. The bitmap has the same number of color planes or the same bits-per-pixel format as the specified device context. It can be selected as the current bitmap for any memory device that is compatible with the one specified by pDC. If pDC is a memory device context, the bitmap returned has the same format as the currently selected bitmap in that device context. A "memory device context" is a block of memory that represents a display surface. It can be used to prepare images in memory before copying them to the actual display surface of the compatible device. �`��G \���2���������������y������When a memory device context is created, GDI automatically selects a monochrome stock bitmap for it. Since a color memory device context can have either color or monochrome bitmaps selected, the format of the bitmap returned by the CreateCompatibleBitmap function is not always the same; however, the format of a compatible bitmap for a nonmemory device context is always in the format of the device. When you are finished with a CBitmap initialized with CreateCompatibleBitmap, you must select the bitmap out of the device context and then use the DeleteObject function to delete the bitmap. 4sN) "��2�������ReturnsZ+�/ .�V�2���������TRUE if successful; otherwise FALSE. 5N�) "��2�������See AlsoH�%* $�<�2��������::CreateCompatibleBitmap �m��1�����������
CBitmap::CreateDiscardableBitmapEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")M$%) "�H�2�������CBitmap::CreateDiscardableBitmap�L��> L���r�=���~����������BOOL CreateDiscardableBitmap( CDC* pDC, int nWidth, int nHeight );)�& ��2������K�2 4�2�R�=��~Q�=�����ParameterDescription����@ N�)�R�=��~�=�������������pDCSpecifies a device context. nWidthSpecifies the width (in bits) of the bitmap. nHeightSpecifies the height (in bits) of the bitmap. 4	) "��2�������Remarks����R r�)�2�����������`.�����[�������Initializes a discardable bitmap that is compatible with the device context identified by pDC. The bitmap has the same number of color planes or the same bits-per-pixel format as the specified device context. An application can select this bitmap as the current bitmap for a memory device that is compatible with the one specified by pDC. Windows can discard a bitmap created by this function only if an application has not selected it into a display context. If Windows discards the bitmap when it is not selected and the application later attempts to select it, the CDC::SelectObject or CMetaFileDC::SelectObject function will return NULL. .�	*
F Z���2�����������`.��������When an application has finished using the bitmap created by the CreateBitmapIndirect function, it should select the bitmap out of the device context and use the CDC::SelectObject function to delete the bitmap. ReturnsZ+��
/ .�V�2���������TRUE if successful; otherwise FALSE. �`*
1$��������U�BCBitmap::FromHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")@�
U) "�.�2�������CBitmap::FromHandlef4�2 4�h�r�=���~������static CBitmap* FromHandle( HBITMAP hBitmap );)U�& ��2������K�/2 4�2�R�=��~Q�=�����ParameterDescription[,��/ .�X�R�=��~�=�����hBitmapSpecifies a Windows GDI bitmap. 4/�) "��2�������Remarks)���A? L���2��������������Re��A�
turns a pointer to a CBitmap object when given a handle to a Windows GDI bitmap. If a CBitmap object is not already attached to the handle, a temporary CBitmap object is created and attached. This temporary CBitmap object is valid only until the next time the application has idle time in its event loop, at which time all temporary graphic objects are deleted. Another way of saying this is that the temporary object is only valid during the processing of one window message. 4�'B) "��2�������ReturnsvD�A�B2 4���2����������A pointer to a CBitmap object if successful; otherwise NULL. �c'B1C1���������1CtCHCBitmap::GetBitmapBitsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")C�BtC) "�4�2�������CBitmap::GetBitmapBitsyA1C�C8 @���r�=���~��������DWORD GetBitmapBits( DWORD dwCount, LPSTR lpBits ) const;)tCD& ��2������K�CaD2 4�2�R�=��~Q�=�����ParameterDescription3�D�E8 >���R�=��~�=���������dwCountSpecifies the number of bytes to be copied. lpBitsPoints to the buffer that is to receive the bitmap. The bitmap is an array of bytes. The bitmap byte array conforms to a structure where horizontal scan lines are multiples of 16 bits. 4aD�E) "��2�������Remarksa�E)GR r��2�����������gF����������Copies the bit pattern of the CBitmap object into the buffer that is pointed to by lpBits. The dwCount parameter specifies the number of bytes to be copied to the buffer. Use GetObject to determine the correct dwCount value for the given bitmap. ReturnsnH�E�G& ���2������The actual number of bytes in the bitmap, or 0 if there is an error. 5)G�G) "��2�������See AlsoM�GH0 0�:�2����gF������CGdiObject::GetObject �h�G�H1����������H�HbLCBitmap::GetBitmapDimensionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")HH�H) "�>�2�������CBitmap::GetBitmapDimensionQ%�HKI, (�J�r�=���~����CSize GetBitmapDimension() const;)�HtI& ��2������4KI�I) "��2�������Remarks��tI�J: B�I�2�����c�VL��������Returns the width and height of the bitmap. The height and width are assumed to have been set previously by using the SetBitmapDimension function. ReturnsT�I�KE X��2�����������c�VL�����The width and height of the bitmap, measured in 0.1-millimeter units. The height is in the cy member of the CSize object, and the width is in the cx member. If the bitmap width and height have not been set by using SetBitmapDimension, the return value is 0. 5�JL) "��2�������See AlsoS#�KbL0 0�F�2����c�VL������CBitmap::SetBitmapDimension �`L�L1����������L3M��CBitmap::LoadBitmapEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")@bL3M) "�.�2�������CBitmap::LoadBitmap�]�L�M? N���r�=���~�����������BOOL LoadBitmap( const char FAR* lpBitmapName );BOOL LoadBitmap( UINT nIDBitmap );)3M�M& ��2������K�MCN2 4�2�R�u��~Q�u�����ParameterDescription���MAO1 0���R�u��~�u������lpBitmapNamePoints to a null-terminated string that contains the name of the bitmap resource. To access the predefined bitmaps used by Windows, you set this parameter to one of the following values: QCN`�� R���R�)��}�)�����������������������������������������������������������������AO`�bL��OBM_BTNCORNERSOBM_OLD_RESTORE OBM_BTSIZEOBM_OLD_RGARROW OBM_CHECKOBM_OLD_UPARROW OBM_CHECKBOXESOBM_OLD_ZOOM OBM_CLOSEOBM_REDUCE OBM_COMBOOBM_REDUCED OBM_DNARROWOBM_RESTORE OBM_DNARROWDOBM_RESTORED OBM_DNARROWIOBM_RGARROW OBM_LFARROWOBM_RGARROWD OBM_LFARROWDOBM_RGARROWI 3�AO��| ƀo�R�)��}�)�������������������������������������OBM_LFARROWIOBM_SIZE OBM_MNARROWOBM_UPARROW OBM_OLD_CLOSEOBM_UPARROWD OBM_OLD_DNARROWOBM_UPARROWI OBM_OLD_LFARROWOBM_ZOOM OBM_OLD_REDUCEOBM_ZOOMD 8�`�˄: B���R�u��~�u�������������Bitmap names that begin with OBM_OLD represent bitmaps used by Windowsversions earlier than 3.0.The bitmaps identified by OBM_DNARROWI, OBM_LFARROWI, OBM_RGARROWI, andOBM_UPARROWI are new for Windows 3.1. These bitmaps are not found in devicedrivers for previous versions of Windows.Note that for an application to use any of the OBM_ constants, the constantOEMRESOURCE must be defined before the WINDOWS.H header file is included.nIDBitmapSpecifies the resource ID number of the bitmap resource. 4����) "��2�������Remarks ˄~�_ ��A�2�������������������y����������Loads the bitmap resource named by lpBitmapName or identified by the ID number in nIDBitmap from the application's executable file. The loaded bitmap is attached to the CBitmap object. If the bitmap identified by lpBitmapName does not exist or if there is insufficient memory to load the bitmap, the function returns FALSE. An application must call the DeleteObject function to delete any bitmap loaded by the LoadBitmap function, including the predefined bitmaps listed in the description of the lpBitmapName parameter. 4����) "��2�������ReturnsZ+~��/ .�V�2���������TRUE if successful; otherwise FALSE. 5��A�) "��2�������See Alsod.���6 <�\�2�����
����������CBitmap::LoadOEMBitmap, ::LoadBitmap �cA�9�1r��������9�|���CBitmap::LoadOEMBitmapEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")C��|�) "�4�2�������CBitmap::LoadOEMBitmap]+9�ى2 4�V�r�=���~������BOOL LoadOEMBitmap( UINT nIDBitmap );)|��& ��2������KىM�2 4�2�R�=��~Q�=�����ParameterDescription�o��/ .���R�=��~�=�����nIDBitmapID number of the predefined Windows bitmap. The possible values are listed below from WINDOWS.H: [M��� D���p���R������������������������������������������������������������������OBM_BTNCORNERS OBM_BTSIZE OBM_CHECK OBM_CHECKBOXES OBM_CLOSE OBM_COMBO OBM_DNARROW OBM_DNARROWD OBM_DNARROWI OBM_LFARROW OBM_LFARROWD OBM_LFARROWI OBM_MNARROW OBM_OLD_CLOSE OBM_OLD_DNARROW OBM_OLD_LFARROW OBM_OLD_REDUCE OBM_OLD_RESTORE OBM_OLD_RGARROW OBM_OLD_UPARROW OBM_OLD_ZOOM ?��@� ̀��p���R����������������������������������������OBM_REDUCE OBM_REDUCED OBM_RESTORE OBM_RESTORED OBM_RGARROW OBM_RGARROWD OBM_RGARROWI OBM_SIZE OBM_UPARROW OBM_UPARROWD OBM_UPARROWI OBM_ZOOM OBM_ZOOMD 4�t�) "��2�������RemarksY@�͏B R�/�2�����������������Loads a predefined bitmap used by Windows. Bitmap names that begin with OBM_OLD represent bitmaps used by Windows versions prior to 3.0. Note that the constant OEMRESOURCE must be defined before including WINDOWS.H in order to use any of the OBM_ constants. ReturnsZ+t�3�/ .�V�2���������TRU͏3���E if successful; otherwise FALSE. 5͏h�) "��2�������See Alsoa+3���6 <�V�2����>!Ā�������CBitmap::LoadBitmap, ::LoadBitmap �ch�]�1���������]����CBitmap::SetBitmapBitsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")C����) "�4�2�������CBitmap::SetBitmapBitss;]��8 @�v�r�=���~��������DWORD SetBitmapBits( DWORD dwCount, LPSTR lpBits );)��<�& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescription��<�{�J b�U�R�=��~�=���������������dwCountSpecifies the number of bytes pointed to by lpBits. lpBitsPoints to the BYTE array that contains the bit values to be copied to the CBitmap object. 4����) "��2�������RemarksL{�.�3 6���2�����������Sets the bits of a bitmap to the bit values given by lpBits. ReturnswQ����& ���2������The number of bytes used in setting the bitmap bits; 0 if the function fails. 5.���) "��2�������See Also?���* $�*�2��������::SetBitmapBits �h����11��������������CBitmap::SetBitmapDimensionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBitmap')")H���) "�>�2�������CBitmap::SetBitmapDimensiont<��n�8 @�x�r�=���~��������CSize SetBitmapDimension( int nWidth, int nHeight );)����& ��2������Kn���2 4�2�R�=��~Q�=�����ParameterDescription������8 >�#�R�=��~�=���������nWidthSpecifies the width of the bitmap (in 0.1-millimeter units). nHeightSpecifies the height of the bitmap (in 0.1-millimeter units). 4����) "��2�������Remarks�����: B���2�����_c���������Assigns a width and height to a bitmap in 0.1-millimeter units. The graphics device interface (GDI) does not use these values except to return them when an application calls the GetBitmapDimension function. Returns������9 @��2������������The previous bitmap dimensions. Height is in the cy member variable of the CSize object, and width is in the cx member variable. 5����) "��2�������See Alsoq;��b�6 <�v�2����_c���������CBitmap::GetBitmapDimension, ::SetBitmapDimension �r����& ���2������*************************************************** CBrush *************************************************** �[b���1��������������class CBrushEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_003')")9����) "� �2�������class CBrush9����* $����R�����DescriptionR��J�L f�
����������㪌���������The CBrush class encapsulates a Windows graphical design interface (GDI) brush. To use a CBrush object, construct a CBrush object and pass it to any CDC member function that requires a brush. Brushes can be solid, hatched, or patterned. See AlsoS����; F�0����VOܙ���㪌������CBitmap, CDC ]-J���0 0�Z�2����������Public MembersConstruction/Destructione+��_�: D�V�R��-���Z!B��������CBrushConstructs a CBrush object. ;����) "�$�2�������InitializationD�_��n ����R�I��}�I㮊�Z�������0�������<��������9+^�����㠃�s������CreateSolidBrushInitializes a brush with the specified solid color. CreateHatchBrushInitializes a brush with the specified hatched pattern and color. CreateBrushIndirectInitializes a brush with the style, color, and pattern specifi�����ed in a LOGBRUSH structure. CreatePatternBrushInitializes a brush with a pattern specified by a bitmap. CreateDIBPatternBrushInitializes a brush with a pattern specified by a device-independent bitmap (DIB). 7��!) "��2�������Operations�j��A R���R�e��~�e㑧Qk����������FromHandleReturns a pointer to a CBrush object when given a handle to a Windows HBRUSH object. �Z!W1_
��������W��CBrush::CBrushEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBrush')"):��(  �$�������CBrush::CBrushV�W�� Ѐ��r�=���~������������������������������������CBrush();CBrush( DWORD crColor )throw( CResourceException );CBrush( int nIndex, DWORD crColor )throw( CResourceException );CBrush( CBitmap* pBitmap )throw( CResourceException );)�& ��2������K�[2 4�2�R�=��~Q�=�����ParameterDescription+��8 >���R�=��~�=���������crColorSpecifies the foreground color of the brush as an RGB color. If the brush is hatched, this parameter specifies the color of the hatching. nIndexSpecifies the hatch style of the brush. It can be any one of the following values: C[�2 4�"�R�/�~Q�/�����ValueMeaningi�2X ~�#�R�/�~�/�������������������������HS_BDIAGONALDownward hatch (left to right) at 45 degrees HS_CROSSHorizontal and vertical crosshatch HS_DIAGCROSSCrosshatch at 45 degrees HS_FDIAGONALUpward hatch (left to right) at 45 degrees HS_HORIZONTALHorizontal hatch HS_VERTICALVertical hatch �^��5 :���R�=��~�=�������pBitmapPoints to a CBitmap object that specifies a bitmap with which the brush paints. 42�) "��2�������Remarks�y��
p ����2���������㮊�Z�����0�����<������9+^���㠃�s�����Has four overloaded constructors. The constructor with no arguments constructs an uninitialized CBrush object that must be initialized before it can be used. If you use the constructor with no arguments, you must initialize the resulting CBrush object with CreateSolidBrush, CreateHatchBrush, CreateBrushIndirect, CreatePatternBrush, or CreateDIBPatternBrush. If you use one of the constructors that takes arguments, then no further initialization is necessary. The constructors with arguments can throw an exception if errors are encountered, while the constructor with no arguments will always succeed. Y��;w ����2�����������������ɴt���������>!Ā���U$�N�����The constructor with a single DWORD parameter constructs a solid brush with the specified color. The color specifies an RGB value and can be constructed with the RGB macro in WINDOWS.H. The constructor with two parameters constructs a hatch brush. The nIndex parameter specifies the index of a hatched pattern. The crColor parameter specifies the color. The constructor with a CBitmap parameter constructs a patterned brush. The parameter identifies a bitmap. The bitmap is assumed to have been created by using CBitmap::CreateBitmap, CBitmap::CreateBitmapIndirect, CBitmap::LoadBitmap, or CBitmap::CreateCompatibleBitmap. The minimum size for a bitmap to be used in a fill pattern is 8 pixels by 8 pixels. 5�
p) "��2�������See AlsoO�;�y ����2����ɴt����>!Ā��㮊�Z�����0�����<������9+^����u9�T������CBitmap::CreateBitmap, CBitmap::LoadBitmap, CBrush::CreateSolidBrush, CBrush::CreateHatchBrush, CBrush::CreateBrushIndirect, CBrush::CreatePatternBrush, CGdiObject::CreateStockObject �gpc@1��������� c@�@:GCBrush::CreateBr�c@�ushIndirectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBrush')")H��@) "�>�2�������CBrush::CreateBrushIndirectj8c@A2 4�p�r�=���~������BOOL CreateBrushIndirect( LPLOGBRUSH lpLogBrush );)�@>A& ��2������KA�A2 4�2�R�=��~Q�=�����ParameterDescription�[>AB5 :���R�=��~�=�������lpLogBrushPoints to a LOGBRUSH structure that contains information about the brush. 4�AMB) "��2�������Remarks��B8E; D�a�2�����������y������Initializes a brush with a style, color, and pattern specified in a LOGBRUSH structure. The brush can subsequently be selected as the current brush for any device context. A brush created using a monochrome (1 plane, 1 bit per pixel) bitmap is drawn using the current text and background colors. Pixels represented by a bit set to 0 will be drawn with the current text color. Pixels represented by a bit set to 1 will be drawn with the current background color. When it has finished using a brush created by CreateBrushIndirect, an application should select the brush out of the device context in which it was used and then remove the brush by using the DeleteObject function. 4MBlE) "��2�������Returnsj;8E�E/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5lEF) "��2�������See Also/��E:Gm ����2���㠃�s����9+^���㮊�Z�����0����u9�T������y�������CBrush::CreateDIBPatternBrush, CBrush::CreatePatternBrush, CBrush::CreateSolidBrush, CBrush::CreateHatchBrush, CGdiObject::CreateStockObject, CGdiObject::DeleteObject �iF�G1]��������!�GH��CBrush::CreateDIBPatternBrushEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBrush')")J!:GH) "�B�2�������CBrush::CreateDIBPatternBrush�K�G�H8 @���r�=���~��������BOOL CreateDIBPatternBrush( GLOBALHANDLE hPackedDIB, UINT nUsage );)H�H& ��2������K�HI2 4�2�R�[��~Q�[�����ParameterDescription�E�H�JD V���R�[��~�[�������������hPackedDIBIdentifies a global-memory object containing a packed device-independent bitmap (DIB). nUsageSpecifies whether the bmiColors[] fields of the BITMAPINFO data structure contain explicit RGB values or indexes into the currently realized logical palette. The parameter must be one of the following values: CI�J2 4�"�R�S�~Q�S�����ValueMeaning���J�K8 >��R�S�~�S���������DIB_PAL_COLORSThe color table contains literal RGB values. DIB_RGB_COLORSThe color table consists of an array of 16-bit indexes. 4�J�K) "��2�������Remarks
��K�M. *���2���������Initializes a brush with the pattern specified by a device-independent bitmap (DIB). The brush can subsequently be selected for any device context that supports raster operations. To obtain a handle to the DIB, you call the Windows GlobalAlloc function to allocate a block of global memory and then fill the memory with the packed DIB. A packed DIB consists of a BITMAPINFO data structure immediately followed by the array of bytes that define the pixels of the bitmap. ���Kހ( ���2�������Bitmaps used as fill patterns should be 8 pixels by 8 pixels. If the bitmap is larger, Windows creates a fill pattern using only the bits corresponding to the first 8 rows and 8 columns of pixels in the upper-left corner of the bitmap. When an application selects a two-color DIB pattern brush into a monochrome device context, Windows ignores the colors specified in the DIB and instead displays the pattern brush using the current text and background colors of the device context. Pixels mapped to t�Mހ:Ghe first color (at offset 0 in the DIB color table) of the DIB are displayed using the text color. Pixels mapped to the second color (at offset 1 in the color table) are displayed using the background color. ���MЁ@ N�e�2���������y���������When an application has finished using the brush created by the CreateDIBPatternBrush function, it should delete the brush by using the DeleteObject function. ReturnsZ+ހ*�/ .�V�2���������TRUE if successful; otherwise FALSE. 5Ё_�) "��2�������See AlsoU�*���m ����2����9+^�����<�����㮊�Z�����0����u9�T������y�������CBrush::CreatePatternBrush, CBrush::CreateBrushIndirect, CBrush::CreateSolidBrush, CBrush::CreateHatchBrush, CGdiObject::CreateStockObject, CGdiObject::DeleteObject, ::CreateDIBPatternBrush, ::GlobalAlloc �d_�I�1���������"I�����CBrush::CreateHatchBrushEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBrush')")E����) "�8�2�������CBrush::CreateHatchBrushs;I��8 @�v�r�=���~��������BOOL CreateHatchBrush( int nIndex, DWORD crColor );)��*�& ��2������K�u�2 4�2�R�=��~Q�=�����ParameterDescription�Z*���/ .���R�=��~�=�����nIndexSpecifies the hatch style of the brush. It can be one of the following values: Cu�A�2 4�"�R�/�~Q�/�����ValueMeaningi����X ~�#�R�/�~�/�������������������������HS_BDIAGONALDownward hatch (left to right) at 45 degrees HS_CROSSHorizontal and vertical crosshatch HS_DIAGCROSSCrosshatch at 45 degrees HS_FDIAGONALUpward hatch (left to right) at 45 degrees HS_HORIZONTALHorizontal hatch HS_VERTICALVertical hatch �dA�=�/ .���R�=��~�=�����crColorSpecifies the foreground color of the brush as an RGB color (the color of the hatches). 4��q�) "��2�������Remarks�q=�#�A P���2����������y���������Initializes a brush with the specified hatched pattern and color. The brush can subsequently be selected as the current brush for any device context. When an application has finished using the brush created by the CreateHatchBrush function, it should select the brush out of the device context and then delete it by using the DeleteObject function. ReturnsZ+q�}�/ .�V�2���������TRUE if successful; otherwise FALSE. 5#���) "��2�������See AlsoF�}���m ����2�����<�����㠃�s����9+^���㮊�Z����u9�T������y�������CBrush::CreateBrushIndirect, CBrush::CreateDIBPatternBrush, CBrush::CreatePatternBrush, CBrush::CreateSolidBrush, CGdiObject::CreateStockObject, CGdiObject::DeleteObject, ::CreateHatchBrush �f����1]	��������#��֌j�CBrush::CreatePatternBrushEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBrush')")G��֌) "�<�2�������CBrush::CreatePatternBrushd2��:�2 4�d�r�=���~������BOOL CreatePatternBrush( CBitmap* pBitmap );)֌c�& ��2������K:���2 4�2�R�=��~Q�=�����ParameterDescriptionP!c���/ .�B�R�=��~�=�����pBitmapIdentifies a bitmap. 4��2�) "��2�������Remarks�D����^ ����2�������ɴt���������>!Ā���U$�N������Initializes a brush with a pattern specified by a bitmap. The brush can subsequently be selected for any device context that supports raster operations. The bitmap identified by pBitmap is typically initialized by using the CBitmap::CreateBitmap, CBitmap::CreateBitmapIndirect, CBitmap::LoadBitmap, or CBitmap::CreateCompatibleBitmap function. Bitm2�����aps used as fill patterns should be 8 pixels by 8 pixels. If the bitmap is larger, Windows will only use the bits corresponding to the first 8 rows and columns of pixels in the upper-left corner of the bitmap. K2�+�4 6�/�2�������y�������A pattern brush can be deleted without affecting the associated bitmap. This means the bitmap can be used to create any number of pattern brushes. When the brush is no longer needed, the application should remove it by using DeleteObject. A brush created using a monochrome bitmap (1 color plane, 1 bit per pixel) is drawn using the current text and background colors. Pixels represented by a bit set to 0 are drawn with the current text color. Pixels represented by a bit set to 1 are drawn with the current background color. 4��_�) "��2�������ReturnsZ++���/ .�V�2���������TRUE if successful; otherwise FALSE. 5_���) "��2�������See Also|���j�� ؀��2�����<�����㠃�s�����0���㮊�Z������y�����ɴt���������>!Ā�����CBrush::CreateBrushIndirect, CBrush::CreateDIBPatternBrush, CBrush::CreateHatchBrush, CBrush::CreateSolidBrush, CGdiObject::DeleteObject, CBitmap::CreateBitmap, CBitmap::CreateBitmapIndirect, CBitmap::LoadBitmap �d����12��������$��D�E�CBrush::CreateSolidBrushEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBrush')")Ej�D�) "�8�2�������CBrush::CreateSolidBrush_-����2 4�Z�r�=���~������BOOL CreateSolidBrush( DWORD crColor );)D���& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescription������6 :��R�=��~�=�������crColorSpecifies the color of the brush. The color specifies an RGB value and can be constructed with the RGB macro in WINDOWS.H. 4�
�) "��2�������Remarks�T����A P���2����������y���������Initializes a brush with a specified solid color. The brush can subsequently be selected as the current brush for any device context. When an application has finished using the brush created by CreateSolidBrush, it should select the brush out of the device context and then remove it by using the DeleteObject function. ReturnsZ+
���/ .�V�2���������TRUE if successful; otherwise FALSE. 5��.�) "��2�������See Also���E�a ��m�2�����<�����㠃�s�����0����9+^������y�������CBrush::CreateBrushIndirect, CBrush::CreateDIBPatternBrush, CBrush::CreateHatchBrush, CBrush::CreatePatternBrush, ::CreateSolidBrush, CGdiObject::DeleteObject �^.���1���������%���~CBrush::FromHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CBrush')")?E��) "�,�2�������CBrush::FromHandlec1��v�2 4�b�r�=���~������static CBrush* FromHandle( HBRUSH hBrush );)���& ��2������Kv���2 4�2�R�=��~Q�=�����ParameterDescriptiona,��K�5 :�X�R�=��~�=�������hBrushHANDLE to a Windows GDI brush. 4���) "��2�������Remarks0�K���E X���2����������������Returns a pointer to a CBrush object when given a handle to a Windows HBRUSH object. If a CBrush object is not already attached to the handle, a temporary CBrush object is created and attached. This temporary CBrush object is valid only until the next time the application has idle time in its event loop. At this time, all temporary graphic objects are deleted. Another way of saying this is that the temporary object is only valid during the processing of one window message. 4�) "��2�������Returns��E�r@��~2 4���2����������A pointer to a CBrush object if successful; NULL if not. �\1/��������&ECclass CButtonEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')"):~E) "�"�2�������class CButton8}) "��2�������DescriptionTE�L f��2�����������8�Հ���ᥣF�����The CButton class provides the functionality of Windows button control. A button control is a small, rectangular child window that can be clicked on and off. Buttons can be used alone or in groups, and can either be labeled or appear without text. A button typically changes appearance when the user clicks it. Typical buttons are the check box, radio button, and pushbutton. A CButton object can become any of these, according to the style specified at its initialization by the Create member function. J�}k ����2���������ᥣF���������\僭������������You create a button control in two steps. First, call the constructor CButton to construct the CButton object, then call the Create member function to create the Windows button control and attach it to the CButton object. Construction can be a one-step process in a class derived from CButton. Write a constructor for the derived class and call Create from within the constructor. If you want to handle the Windows notification messages sent by a CButton object to its parent (usually a class derived from CDialog or CModalDialog), add the appropriate message-map entries and message-handler member functions to the parent class to handle the messages you want to process. Potential message-map entries are: |;��A R�v�pȘR����{����������ON_COMMAND ON_BN_CLICKED ON_BN_DOUBLECLICKED O��	Q p�����������������������If you create a CButton object within a dialog box (through a dialog resource), the CButton object is automatically destroyed when the user closes the dialog box. If you create a CButton object within a window, you may also need to destroy it. If you create the CButton object on the stack, it is destroyed automatically. If you create the CButton object on the heap by using the new function, you must call delete on the object to destroy it when the user closes the Windows button control. ����
9 @��������������If you allocate any memory in the CButton object, override the CButton destructor to dispose of the allocations. See Also�p�	�� ր�����+����Є'�����9�����"�������3Iـ���M3�0������f������K�������CWnd, CComboBox, CEdit, CListBox, CScrollBar, CStatic, CModalDialog, CDialog ]-�
�0 0�Z�2����������Public MembersConstruction/Destructiong-�Y: D�Z�R���!����ڣT��������CButtonConstructs a CButton object. ;��) "�$�2�������Initialization�YY'
: D���R��1���ᥣF��������CreateCreates the Windows button control and attaches it to the CButton object. 7�^
) "��2�������Operations�i'
C| ƀ��R����~����x�������㘬T3������Y1������㳌0������67OR������z�fM������GetStateRetrieves the state of a button control. SetStateSets the highlighting state of a button control. GetCheckRetrieves the check state of a button control. SetCheckSets the check state of a button control. GetButtonStyleRetrieves information about the button control style. SetButtonStyleChanges the style of a button. �]^
�1o��������'�@WACButton::CButtonEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CButton')")<C@(  �(�������CButto�@Cn::CButton:�S@, (��r�=���~����CButton();)@|@& ��2������4S@�@) "��2�������Remarks`-|@A3 6�Z�2�����������Constructs a CButton object. See AlsoG�@WA0 0�.�2����ᥣF������CButton::Create �\A�A1���������(�A B�MCButton::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CButton')")<WA B) "�&�2�������CButton::Create�t�A�BJ d���r�=���~��������������BOOL Create( const char FAR* lpCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );) BC& ��2������K�BRC2 4�2�R�=��~Q�=�����ParameterDescription�CTEz €�R�=��~�=���������8�Հ��������������������������lpCaptionSpecifies the button control's text. dwStyleSpecifies the button control's style. rectSpecifies the button control's size and position. It can be either a CRect object or a RECT structure. pParentWndSpecifies the button control's parent window, usually a CDialog or CModalDialog. It must not be NULL. nIDSpecifies the button control's resource ID. 4RC�E) "��2�������Remarks��TE;I� X���2�������\僭�������\僭�����@�����ؤ"������6����e��������@�����ؤ"������6����e�����������ؤ"�����You construct a CButton object in two steps. First call the constructor, then call Create, which creates the Windows button control and attaches it to the CButton object. When Create executes, Windows sends the WM_NCCREATE, WM_CREATE, WM_NCCALCSIZE, and WM_GETMINMAXINFO messages to the button control. These messages are handled by default by the OnNcCreate, OnCreate, OnNcCalcSize, and OnGetMinMaxInfo member functions in the CWnd base class. To extend the default message handling, derive a class from CButton, add a message map to the new class, and override the preceding message-handler member functions. Override OnCreate, for example, to perform needed initialization for a new class. ���E)J- (���2��������To handle Windows notification messages that the CButton object sends to its parent, add any of the following message-map entries that you want to process to the parent-class message map: |;;I�JA R�v�pȘR����{����������ON_COMMAND ON_BN_CLICKED ON_BN_DOUBLECLICKED o>)JK1 2�|�����6C4�����Apply the following window styles to a button control: G�J[K2 4�*�R����~Q�������StyleApplication��KFLP n�7�R����~�����������������������WS_CHILDAlways. WS_VISIBLEUsually. WS_DIABLEDRarely. WS_GROUPTo group controls. WS_TABSTOPTo include the button in the tabbing order. G[K�L8 @��������8�Հ�������Apply any combination of button styles to the button. ReturnsY+FLM. ,�V���������TRUE if successful; otherwise FALSE. 4�LRM(  ��������See AlsoGM�M/ .�0�����ڣT������CButton::CButton �dRM.N1��������).NqNS�CButton::GetButtonStyleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CButton')")C�MqN(  �6�������CButton::GetButtonStyleL .N�N, (�@�r�=���~����UINT GetButtonStyle() const;)qN�N& ��2������4�NO) "��2�������Remarks���N�O@ N��2��������8�Հ�������Retrieves the window style of CButton. It only returns the BS_ style values, not any of the other window styles. See Alsoh2OS�6 <�d�2����OS��M���z�fM������::GetWindowLong, CButton::SetButtonStyle �^�O�1���������*� ���CButton::GetCheckEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CButton')")>S� �) "�*�2�������CButton::GetCheckE�e�, (�2�r�=���~����int GetCheck() const;) ���& ��2������4e�) "��2�������RemarkstG��6�- *���2���������Retrieves the check state of a radio button or check box. Returns�L�K d���2������������������The return value from a button control created with the BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON, or BS_3STATE style is one of the following values: B6���1 2�"�R�݀?�܀����ValueMeaning��L�r�< F�Q�R�݀?�܀�����������0Button state is unchecked. 1Button state is checked. 2Button state is indeterminate (only applies if the button has the BS_3STATE or BS_AUTO3STATE style). tH���, (�����������If the button has any other style, the return value is 0. See Also�Vr���M j�������x�����㘬T3���㳌0��������CButton::GetState, CButton::SetState, CButton::SetCheck, BM_GETCHECK �^��1���������+�U�#�CButton::GetStateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CButton')")=��U�(  �*�������CButton::GetStateF���, (�4�r�=���~����UINT GetState() const;)U�Ć& ��2������3����(  ��������Returns��Ć��& �/������Specifies the current state of the button control. You can use the following masks against the return value to extract information about the state: A����1 2� �R�ŀWQ�Ā����MaskMeaning����Ê4 6�5�R�ŀW�Ā�������0x0003Specifies the check state (radio buttons and check boxes only). A 0 indicates the button is unchecked. A 1 indicates the button is checked. A radio button is checked when it contains a dot (.). A check box is checked when it contains an X. A 2 indicates the check state is indeterminate (three-state check boxes only). The state of a three-state check box is indeterminate when it contains a halftone pattern. 0x0004Specifies the highlight state. A nonzero value indicates that the button is highlighted. A button is highlighted when the user clicks and holds the left mouse button. The highlighting is removed when the user releases the mouse button. �^��L�+ &���R�ŀW�Ā���0x0008Specifies the focus state. A nonzero value indicates that the button has the focus. 4Ê��(  ��������See Also�VL�#�M j������Y1����㳌0���㘬T3��������CButton::GetCheck, CButton::SetCheck, CButton::SetState, BM_GETSTATE �d����1S��������,����)�CButton::SetButtonStyleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CButton')")C#���(  �6�������CButton::SetButtonStyle�B��{�> L���r�=���~����������void SetButtonStyle( UINT nStyle, BOOL bRedraw = TRUE );)����& ��2������K{��2 4�2�R�=��~Q�=�����ParameterDescription,����P n���R�=��~�=�����8�Հ������������nStyleSpecifies the button style. bRedrawSpecifies whether the button is to be redrawn. A value of TRUE redraws the button. A value of FALSE does not redraw the button. The button is redrawn by default. 4�O�) "��2�������Remarksj1���9 B�b�2������8�Հ�������Changes the style of a button. See Alsod.O�)�6 <�\�2����67OR��������CButton::GetBut��)�#�tonStyle, BM_SETSTYLE �^����1V��������-�����CButton::SetCheckEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CButton')")>)���) "�*�2�������CButton::SetCheckT"��J�2 4�D�r�=���~������void SetCheck( int nCheck );)��s�& ��2������KJ���2 4�2�R�=��~Q�=�����ParameterDescription�Ys�F�/ .���R�=��~�=�����nCheckSpecifies the check state. This parameter can be one of the following values: C����2 4�"�R��?������ValueMeaning�F���= H���R��?�������������0Set the button state to unchecked. 1Set the button state to checked. 2Set the button state to indeterminate. This value can only be used if the button has the BS_3STATE or BS_AUTO3STATE style. 4����) "��2�������Remarks����w�. *��2���������Sets or resets the check state of a radio button or check box. This member function has no effect on a pushbutton. See Also�V���N l���2����Y1������x�����㘬T3��������CButton::GetCheck, CButton::GetState, CButton::SetState, BM_SETCHECK �^w���1?��������.������CButton::SetStateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CButton')")>���) "�*�2�������CButton::SetStateY'��A�2 4�N�r�=���~������void SetState( BOOL bHighlight );)��j�& ��2������KA���2 4�2�R�=��~Q�=�����ParameterDescription��j���< F�1�R�=��~�=���������bHighlightSpecifies whether the button is to be highlighted. A value of TRUE highlights the button. A value of FALSE removes any highlighting. 4����) "��2�������Remarks�e��R�0 .���2�����������Sets the highlighting state of a button control. Highlighting affects the exterior of a button control. It has no effect on the check state of a radio button or check box. A button control is automatically highlighted when the user clicks and holds the left mouse button. The highlighting is removed when the user releases the mouse button. See Also�V����N l���2�����x�����㳌0����Y1���������CButton::GetState, CButton::SetCheck, CButton::GetCheck, BM_SETSTATE �^R���1��������/������class CClientDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_003')")<����) "�&�2�������class CClientDC8����) "��2�������Descriptionh��a�R r�-�2������㪌��������������The CClientDC class is derived from CDC and takes care of calling the Windows functions GetDC at construction time and ReleaseDC at destruction time. This means that the device context associated with a CClientDC object is the client area of a window. See Also;����0 0��2���㪌������CDC ]-a���0 0�Z�2����������Public MembersConstruction/Destruction�x����U z���R�?��~�?�x=!<�����������JԀ�������CClientDCConstructs a CClientDC object connected to the CWnd. ~CClientDCDestroys a CClientDC object. >���) "�*�2�������Protected Members�K����A R���R����z�F�����������m_hWndThe HWND of the window for which this CClientDC is valid. �c�$�1���������0$�d�0CClientDC::CClientDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CClientDC')")@��d�(  �0�������CClientDC::CClientDCv=$���9 B�z�r�=���~���������CClientDC( CWnd* pWnd );throw( CResourceException );)d�& ��2����������K��Z2 4�2�R�=��~Q�=�����ParameterDescription|M�/ .���R�=��~�=�����pWndThe window whose client area the device context object will access. 4Z
) "��2�������Remarks&��0X ~���2�������+�����������(Uc�����Constructs a CClientDC object that accesses the client area of the CWnd pointed to by pWnd. The constructor calls the Windows function GetDC. An exception (of type CResourceException) is thrown if the Windows GetDC call fails. A device context may not be available if Windows has already allocated all of its available device contexts. Your application competes for the five common display contexts available at any given time under Windows. �d
�1R��������1�(CClientDC::~CClientDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CClientDC')")B0) "�2�2�������CClientDC::~CClientDCE�L, (�2�r�=���~����virtual ~CClientDC();)u& ��2������4L�) "��2�������RemarksMu(2 4���2����������Destroys a CClientDC object and calls the Windows ReleaseDC function. �`��1���������2���CClientDC::m_hWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CClientDC')")>(�) "�*�2�������CClientDC::m_hWnd4�+) "��2�������Remarks�N��8 @���2������������The HWND of the CWnd pointer used to construct the CClientDC object. �^+@1��������3@|\�class CComboBoxEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')")<�|) "�&�2�������class CComboBox8@�) "��2�������Description��|�
: B�K�2�������Kjz̀�����The CComboBox class provides the functionality of a Windows combo box. A combo box consists of an edit control plus a list box. The list box may be displayed at all times or may be dropped down when the user selects a drop-down arrow next to the edit control, depending on the style of the combo box. Depending on the style of the combo box, the user may or may not be able to edit the contents of the edit control. If the list box is visible, typing characters into the edit control will cause the first list-box entry that matches the characters typed to be highlighted. Conversely, selecting an item in the list box displays the selected text in the edit control. F���
k ����2����������"5����������\僭������������You create a combo box in two steps. First call the constructor CComboBox to construct the CComboBox object, then call the Create member function to create the button control and attach it to the CComboBox object. Construction can be a one-step process in a class derived from CComboBox. Write a constructor for the derived class and call Create from within the constructor. If you want to handle the Windows notification messages sent by a CComboBox object to its parent (usually a class derived from CDialog or CModalDialog), add the appropriate message-map entries and message-handler member functions to the parent class to handle the messages you want to process. Potential message-map entries are: ��
�l ��_�pȘR����{����������������������������ON_COMMAND ON_CBN_KILLFOCUS ON_CBN_SETFOCUS ON_CBN_DROPDOWN ON_CBN_DBLCLK ON_CBN_ERRSPACE ON_CBN_SELCHANGE ON_CBN_EDITCHANGE ON_CBN_EDITUPDATE Q�
QAQ p����������������������If you create a CComboBox object within a dialog box (through a dialog resource), the CComboBox is automatically destroyed when the user closes the dialog box. If you create a CCom�QA�boBox object within a window, you may also need to destroy it. If you create the CComboBox object on the stack, it is destroyed automatically. If you create the CComboBox object on the heap by using the new function, you must call delete on the object to destroy it when the user terminates the Windows combo box. ���B9 @��������������If you allocate any memory in the CComboBox object, override the CComboBox destructor to dispose of the allocations. See Also�nQAC� ր�����+���㉄N������9�����"�������3Iـ���M3�0������f������K�������CWnd, CButton, CEdit, CListBox, CScrollBar, CStatic, CModalDialog, CDialog ]-B_C0 0�Z�2����������Public MembersConstruction/Destructionl1C�C; F�b�R�[��~�[�ԑ5���������CComboBoxConstructs a CComboBox object. ;_CD) "�$�2�������Initialization�N�C�D: D���R��1����"5���������CreateCreates the combo box and attaches it to the CComboBox object. ?D�D) "�,�2�������General OperationsO��DGn ����R���u~����l	������H�ʶ�������w+���������������um�������GetCountRetrieves the number of items in the list box of a combo box. GetCurSelRetrieves the index of the currently selected item, if any, in the list box of a combo box. SetCurSelSelects a string in the list box of a combo box. GetEditSelGets the starting and ending character positions of the current selection in the edit control of a combo box. LimitTextLimits the length of the text that the user may enter into the edit control of a combo box. ��D'In ��;�R���u~���j��������C����������������4�������ܾB������SetEditSelSelect characters in the edit control of a combo box. GetItemDataRetrieves the application-supplied 32-bit value associated with the specified combo-box item. SetItemDataSets the 32-bit value associated with the specified item in a combo box. GetLBTextGets a string from the list box of a combo box. GetLBTextLenGets the length of a string in the list box of a combo box. 7�G^K� րg�R���u~���z�2���������Kjz̀����%T�3������%Où���������s���������ShowDropDownShows or hides the list box of a combo box that has the CBS_DROPDOWN or CBS_DROPDOWNLIST style. ClearDeletes (clears) the current selection (if any) in the edit control. CopyCopies the current selection (if any) onto the Clipboard in CF_TEXT format. CutDeletes (cuts) the current selection (if any) in the edit control, and copies the deleted text onto the Clipboard in CF_TEXT format. ��'IJL< F�a�R���u~����c6��������PasteInserts the data from the Clipboard into the edit control at the current cursor position. Data is inserted only if the Clipboard contains data in CF_TEXT format. >^K�L) "�*�2�������String Operations0�JL�Nt ��y�R�y��~�y�_u2��������48��������a�s������v��^������-y�������AddStringAdds a string to the end of the list in the list box of a combo box, or at the sorted position for list boxes with the CBS_SORT style. DeleteStringDeletes a string from the list box of a combo box. InsertStringInserts a string into the list box of a combo box. ResetContentRemoves all items from the list box and edit control of a combo box. DirAdds a list of filenames to the list box of a combo box. a�L%�D V�;�R�y��~�y㒗�������6�j������FindStringFinds the first string that contains the specified prefix in the list box of a combo box. SelectStringSearches for a string in the list box of a combo box and, if the string is found, selects the string in the list box and copies the strin�N%��g to the edit control. B�Ng�) "�2�2�������Windows 3.1 FunctionsK�%���l ����R�M��}�M�8ȹ=������l��ހ�����AÂg������CJ�����������SetItemHeightSets the height of list items in a combo box or the height of the edit-control (or static-text) portion of a combo box. GetItemHeightRetrieves the height of list items in a combo box. FindStringExactFinds the first listbox string (in a combo box) that matches the specified string. SetExtendedUISelects either the default user interface or the extended user interface for a combo box that has the CBS_DROPDOWN or CBS_DROPDOWNLIST style. �Xg�\�R r���R�M��}�M���%A������okX�������;IQ������GetExtendedUIDetermines whether a combo box has the default user interface or the extended user interface. GetDroppedControlRectRetrieves the screen coordinates of the visible (dropped-down) list box of a drop-down combo box. GetDroppedStateDetermines whether the list box of a drop-down combo box is visible (dropped down). �c����1B��������4��0�A�CComboBox::AddStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")@\�0�(  �0�������CComboBox::AddStringb0����2 4�`�r�=���~������int AddString( const char FAR* lpString );)0���& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescriptionvG��|�/ .���R�=��~�=�����lpStringPoints to the null-terminated string that is to be added. 4���) "��2�������Remarks�U|�L�G \���2�����Kjz̀����a�s��������Adds a string to the list box of a combo box. If the list box was not created with the CBS_SORT style, the string is added to the end of the list. Otherwise, the string is inserted into the list, and the list is sorted. To insert a string into a specific location within the list, use the InsertString member function. Returns2���~�3 4���2����������If the return value is greater than or equal to 0, it is the zero-based index to the string in the list box. The return value is CB_ERR if an error occurs; the return value is CB_ERRSPACE if insufficient space is available to store the new string. 5L���) "��2�������See Also�L~�A�B T���2����a�s����48����������CComboBox::InsertString, CComboBox::DeleteString, CB_ADDSTRING �c��Պ1u��������5Պ�Z�CComboBox::CComboBoxEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")AA��) "�0�2�������CComboBox::CComboBox<ՊR�, (� �r�=���~����CComboBox();)�{�& ��2������4R���) "��2�������Remarksb/{��3 6�^�2�����������Constructs a CComboBox object. See AlsoI��Z�0 0�2�2�����"5�������CComboBox::Create �_��1z��������6�'�p�CComboBox::ClearEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")=Z�'�) "�(�2�������CComboBox::Clear=�d�, (�"�r�=���~����void Clear();)'���& ��2������4d���) "��2�������Remarks���Վ; D���2�������s���������Deletes (clears) the current selection (if any) in the edit control of the combo box. To delete the current selection and place the deleted contents onto the Clipboard, use the Cut member function. See Also�M��p�N l���2����%Où�����s������c6��������CComboBox::Copy, CComboBox::Cut, CComboBox::Paste, WM_CLEAR �^Վ�1"��������7�H�9�CComboBox::CopyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")p��p�<p�H�) "�&�2�������CComboBox::Copy<���, (� �r�=���~����void Copy();)H���& ��2������4����) "��2�������Remarks������: B��2�����z����������Copies the current selection, if any, in the edit control of the combo box onto the Clipboard in CF_TEXT format. See Also�M��9�N l���2����%T�3�����s������c6��������CComboBox::Clear, CComboBox::Cut, CComboBox::Paste, WM_COPY �`����1S��������8���*�CComboBox::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")>9��) "�*�2�������CComboBox::Create�W����D X���r�=���~������������BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );)���& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescription�A����l ����R�=��~�=����Kjz̀������������������������dwStyleSpecifies the style of the combo box. rectPoints to the position and size of the combo box. Can be a RECT structure or a CRect object. pParentWndSpecifies the combo box's parent window (usually a CDialog or CModalDialog). It must not be NULL. nIDSpecifies the combo box's resource ID. 4���) "��2�������Remarks������� X���2�������\僭�������\僭�����@�����ؤ"������6����e��������@�����ؤ"������6����e�����������ؤ"�����You construct a CComboBox object in two steps. First call the constructor, then call Create, which creates the Windows combo box and attaches it to the CComboBox object. When Create executes, Windows sends the WM_NCCREATE, WM_CREATE, WM_NCCALCSIZE, and WM_GETMINMAXINFO messages to the combo box. These messages are handled by default by the OnNcCreate, OnCreate, OnNcCalcSize, and OnGetMinMaxInfo member functions in the CWnd base class. To extend the default message handling, derive a class from CComboBox, add a message map to the new class, and override the preceding message-handler member functions. Override OnCreate, for example, to perform needed initialization for a new class. ������- (��2��������To handle Windows notification messages sent from a CComboBox object to its parent, add any of the following message-map entries that you want processed to the parent-class message map: �����l ��_�pȘR����{����������������������������ON_COMMAND ON_CBN_KILLFOCUS ON_CBN_SETFOCUS ON_CBN_DROPDOWN ON_CBN_DBLCLK ON_CBN_ERRSPACE ON_CBN_SELCHANGE ON_CBN_EDITCHANGE ON_CBN_EDITUPDATE rA�� �1 2�������6C4�����Apply the following window styles to a combo-box control: G��g�2 4�*�R����~Q�������StyleApplicationZ� ���` ����R����~�������������������������������WS_CHILDAlways. WS_VISIBLEUsually. WS_DIABLEDRarely. WS_VSCROLLFor list boxes and combo boxes. WS_HSCROLLFor list boxes and combo boxes. WS_GROUPTo group controls. WS_TABSTOPTo include the combo box in the tabbing order. �Mg�F�8 @�������Kjz̀�������Apply any combination of combo-box styles to the combo box. Returnse4����1 2�h����������Returns TRUE if successful; otherwise FALSE. 4F���(  ��������See AlsoK��*�/ .�8����ԑ5�������CComboBox::CComboBox �]����1���������9���CComboBox::CutEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')"):*�(  �$�������CComboBox::Cut��*�;��G, (��r�=���~����void Cut();)p& ��2������4G�) "��2�������RemarksbpG \�7�2�����z�������%T�3��������Deletes (cuts) the current selection (if any) in the combo-box edit control, and copies the deleted text onto the Clipboard in CF_TEXT format. To delete the current selection without placing the deleted text onto the Clipboard, call the Clear member function. See Also�M��N l���2����%T�3����%Où�����c6��������CComboBox::Clear, CComboBox::Copy, CComboBox::Paste, WM_CUT �f81���������:8|)CComboBox::DeleteStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")D�|) "�6�2�������CComboBox::DeleteStringX&8�2 4�L�r�=���~������int DeleteString( UINT nIndex );)|�& ��2������K�H2 4�2�R�=��~Q�=�����ParameterDescriptionsD��/ .���R�=��~�=�����nIndexSpecifies the index to the string that is to be deleted. 4H�) "��2�������Remarksk>�Z- *�|�2���������Deletes a string in the list box of a combo box. Returns��f3 4���2����������If the return value is greater than or equal to 0, then it is a count of the strings remaining in the list. The return value is CB_ERR if nIndex specifies an index greater then the number of items in the list. 5Z�) "��2�������See Also�Lf)B T���2����a�s����_u2��������CComboBox::InsertString, CComboBox::AddString, CB_DELETESTRING �]��1���������;���CComboBox::DirEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')");)�) "�$�2�������CComboBox::Dirq9�c8 @�r�r�=���~��������int Dir( UINT attr, const char FAR* lpWildCard );)��& ��2������Kc�2 4�2�R�=��~Q�=�����ParameterDescription����	B R��R�=��~�=������&( �����attrCan be any combination of the enum values described in CFile::GetStatus or any combination of the following values: C��	2 4�"�R��?Q������ValueMeaningk$�	JG \�I�R��?�����������������������0x0000File can be read from or written to. 0x0001File can be read from, but not written to. 0x0002File is hidden and does not appear in a directory listing. 0x0004File is a system file. 0x0010The name specified by lpWildCard specifies a directory. 0x0020File has been archived. 0x4000Include all drives that match the name specified by lpWildCard. 0x8000Exclusive flag. If the exclusive flag is set, only files of the specified type are listed. Otherwise, files of the specified type are listed in addition to "normal" files. �k�	�/ .���R�=��~�=�����lpWildCardPoints to a file-specification string. The string can contain wildcards (for example, *.*). 4J
) "��2�������Remarks�T��
- *���2���������Adds a list of filenames and/or drives to the list box of a combo box. Returns<	
�3 4��2����������If the return value is greater than or equal to 0, it is the zero-based index of the last filename added to the list. The return value is CB_ERR if an error occurs; the return value is CB_ERRSPACE if insufficient space is available to store the new strings. 5�

) "��2�������See Alsoz8��B T�p�2������������&( ������CWnd::DlgDirList, CB_DIR, CFile::GetStatus �d
%@1���������<%@g@�ECComboBox::FindStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc�%@�10wh.hlp', `CComboBox')")B�g@) "�2�2�������CComboBox::FindString�J%@�@8 @���r�=���~��������int FindString( int nStartAfter, const char FAR* lpString ) const;)g@A& ��2������K�@]A2 4�2�R�=��~Q�=�����ParameterDescription,�A�C> J���R�=��~�=�����������nStartAfterContains the zero-based index of the item before the first item to be searched. When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nStartAfter. If -1, the entire list box is searched from the beginning. lpStringPoints to the null-terminated string that contains the prefix to search for. The search is case-independent, so this string may contain any combination of uppercase and lowercase letters. 4]A�C) "��2�������Remarks�|�CfD- *���2���������Finds, but doesn't select, the first string that contains the specified prefix in the list box of a combo box. Returns���C)E- (�-�2��������If the return value is greater than or equal to 0, it is the zero-based index of the matching item. It is CB_ERR if the search was unsuccessful. 5fD^E) "��2�������See Also�J)E�EB T���2����6�j�����w+��������CComboBox::SelectString, CComboBox::SetCurSel, CB_FINDSTRING �b^E}F1)��������=}F�F�HCComboBox::GetCountEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")@�E�F) "�.�2�������CComboBox::GetCountE}FG, (�2�r�=���~����int GetCount() const;)�F+G& ��2������3G^G(  ��������Returns��+GGH, &�{��������The number of items in the list box of a combo box. The returned count is one greater then the index value of the last item (the index is zero-based). It is CB_ERR if an error occurs. 4^G{H(  ��������See Also:GH�H) "�"��������CB_GETCOUNT �c{HII1��������>II�IfKCComboBox::GetCurSelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")@�H�I(  �0�������CComboBox::GetCurSelFII�I, (�4�r�=���~����int GetCurSel() const;)�I�I& ��2������3�I+J(  ��������Returns�{�I�J+ &����������The zero-based index of the currently selected item in the list box of a combo box, or CB_ERR if no item is selected. 4+JK(  ��������See Alsoa,�JfK5 :�X�����w+��������CComboBox::SetCurSel, CB_GETCURSEL �dK�K1J��������?�K<LUOCComboBox::GetEditSelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")AfK<L(  �2�������CComboBox::GetEditSelI�K�L, (�:�r�=���~����DWORD GetEditSel() const;)<L�L& ��2������4�L�L) "��2�������Remarks�{�L�M- *���2���������Gets the starting and ending character positions of the current selection in the edit control of a combo box. Returns2�L�N- (��2��������A 32-bit value that contains the starting position in the low-order word and the position of the first nonselected character after the end of the selection in the high-order word. If this is used on a combo box without an edit control, CB_ERR is returned. 5�M�N) "��2�������See Alsod.�NUO6 <�\�2����j���������CComboBox::SetEditSel, CB_GETEDITSEL �e�N�1���������@�O���CComboBox::GetItemDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")UO�UOCUOO�) "�4�2�������CComboBox::GetItemData^,���2 4�X�r�=���~������DWORD GetItemData( int nIndex ) const;)O�ր& ��2������K��!�2 4�2�R�=��~Q�=�����ParameterDescription�Qր��/ .���R�=��~�=�����nIndexContains the zero-based index of an item in the combo box's list box. 4!�Ձ) "��2�������Remarks����@ N���2�����������������Retrieves the application-supplied 32-bit value associated with the specified combo-box item. The 32-bit value can be set with the dwItemData parameter of a SetItemData member function call. ReturnszNՁa�, (���2��������The 32-bit value associated with the item, or CB_ERR if an error occurs. 5���) "��2�������See Alsof0a���6 <�`�2��������������CComboBox::SetItemData, CB_GETITEMDATA �c����1��������A��ф��CComboBox::GetLBTextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")A��ф) "�0�2�������CComboBox::GetLBText�x����K f���r�=���~���������������int GetLBText( int nIndex, char FAR* lpText ) const;void GetLBText( int nIndex, CString& rString ) const;)ф��& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescriptionN��V�F Z��R�=��~�=���������������nIndexContains the zero-based index of the list-box string to be copied. lpTextPoints to a buffer that is to receive the string. The buffer must have sufficient space for the string and a terminating null character. rStringA reference to a CString. 4���) "��2�������Remarks��V�R�4 6�)�2�����������Gets a string from the list box of a combo box. The second form of this member function fills a CString object with the item's text. Returns����!�3 4�9�2����������The length (in bytes) of the string, excluding the terminating null character. If nIndex does not specify a valid index, the return value is CB_ERR. 5R�V�) "��2�������See Alsoe/!���6 <�^�2����ܾB��������CComboBox::GetLBTextLen, CB_GETLBTEXT �fV�R�1���������BR����CComboBox::GetLBTextLenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")D����) "�6�2�������CComboBox::GetLBTextLen]+R��2 4�V�r�=���~������int GetLBTextLen( int nIndex ) const;)���& ��2������K�g�2 4�2�R�=��~Q�=�����ParameterDescriptionpA�׋/ .���R�=��~�=�����nIndexContains the zero-based index of the list-box string. 4g��) "��2�������RemarksvI׋��- *���2���������Gets the length of a string in the list box of a combo box. Returns���N�3 4�5�2����������The length of the string in bytes, excluding the terminating null character. If nIndex does not specify a valid index, the return value is CB_ERR. 5����) "��2�������See Alsoe/N��6 <�^�2�����4���������CComboBox::GetLBText, CB_GETLBTEXTLEN �f���1"��������C�Î6�CComboBox::InsertStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")D�Î) "�6�2�������CComboBox::InsertStringyA�<�8 @���r�=���~��������int InsertString( int nIndex, const char FAR* lpString );)Îe�& ��2������K<���2 4�2�R�=��~Q�=�����ParameterDescription-�e���8 >���R�=��~�=���������nIndexContains the ze�����ro-based index to the position in the list box that will receive the string. If this parameter is -1, the string is added to the end of the list. lpStringPoints to the null-terminated string that is to be inserted. 4���) "��2�������Remarks!���>�R r���2�����_u2�����+����Kjz̀�������Inserts a string into the list box of a combo box. Unlike the AddString member function, the InsertString member function does not cause a list with the CBS_SORT style to be sorted. Returns��J�3 4���2����������The zero-based index of the position at which the string was inserted. The return value is CB_ERR if an error occurs. The return value is CB_ERRSPACE if insufficient space is available to store the new string. 5>��) "��2�������See Also�iJ�6�N l���2����_u2����48������v��^��������CComboBox::AddString, CComboBox::DeleteString, CComboBox::ResetContent, CB_INSERTSTRING �c���1���������D�����CComboBox::LimitTextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")A6��) "�0�2�������CComboBox::LimitTextX&��c�2 4�L�r�=���~������BOOL LimitText( int nMaxChars );)���& ��2������Kc���2 4�2�R�=��~Q�=�����ParameterDescription������0 .�'�R�=��~�=�����nMaxCharsSpecifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to 65,535 bytes. 4����) "��2�������Remarks>����A P���2������Kjz̀�����hF'�����Limits the length in bytes of the text that the user may enter into the edit control of a combo box. If the combo box does not have the style CBS_AUTOHSCROLL, setting the text limit to be larger than the size of the edit control will have no effect. LimitText only limits the text the user can enter. It has no effect on any text already in the edit control when the message is sent, nor does it affect the length of the text copied to the edit control when a string in the list box is selected. 4��@�) "��2�������Returns����< F�A�2������Kjz̀������TRUE if successful. If called for a combo box with the style CBS_DROPDOWNLIST or for a combo box without an edit control, the return value is CB_ERR. 5@�Q�) "��2�������See Also<���* $�$�2��������CB_LIMITTEXT �_Q��1e��������E�Z���CComboBox::PasteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")=��Z�) "�(�2�������CComboBox::Paste=���, (�"�r�=���~����void Paste();)Z���& ��2������4����) "��2�������Remarks������: B���2�����z����������Inserts the data from the Clipboard into the edit control of the combo box at the current cursor position. Data is inserted only if the Clipboard contains data in CF_TEXT format. See Also�M����N l���2����%T�3����%Où�����s���������CComboBox::Clear, CComboBox::Copy, CComboBox::Cut, WM_PASTE �f��%�1���������F%�i�CComboBox::ResetContentEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")D��i�) "�6�2�������CComboBox::ResetContentD%���, (�0�r�=���~����void ResetContent();)i���& ��2������4��
�) "��2�������Remarks�S����- *���2���������Removes all items from the list box and edit control of a combo box. See Also?
�* $�*�2��������CB_RESETCONTENT �����f���1���������G���CComboBox::SelectStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")D�) "�6�2�������CComboBox::SelectString~F�e8 @���r�=���~��������int SelectString( int nStartAfter, const char FAR* lpString );)��& ��2������Ke�2 4�2�R�=��~Q�=�����ParameterDescription,��> J���R�=��~�=�����������nStartAfterContains the zero-based index of the item before the first item to be searched. When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nStartAfter. If -1, the entire list box is searched from the beginning. lpStringPoints to the null-terminated string that contains the prefix to search for. The search is case-independent, so this string may contain any combination of uppercase and lowercase letters. 4�9) "��2�������Remarks�>N j�o�2��������"�����gA�����������Searches for a string in the list box of a combo box, and if the string is found, selects the string in the list box and copies it to the edit control. A string is selected only if its initial characters (from the starting point) match the characters in the prefix string. Note that the SelectString and FindString member functions both find a string, but the SelectString member function also selects the string. Returns��9- (�[�2��������The zero-based index of the selected item if the string was found. If the search was unsuccessful, the return value is CB_ERR and the current selection is not changed. 5>M) "��2�������See Alsof0�6 <�`�2���㒗���������CComboBox::FindString, CB_SELECTSTRING �cMG1���������HG�M
CComboBox::SetCurSelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")A��) "�0�2�������CComboBox::SetCurSelU#G�2 4�F�r�=���~������int SetCurSel( int nSelect );)�	& ��2������K�Q	2 4�2�R�=��~Q�=�����ParameterDescription��	
0 .�;�R�=��~�=�����nSelectSpecifies the zero-based index of the string to select. If -1, any current selection in the list box is removed and the edit control is cleared. 4Q	R
) "��2�������RemarksL
�. *�=�2���������Selects a string in the list box of a combo box. If necessary, the list box scrolls the string into view (if the list box is visible). The text in the edit control of the combo box is changed to reflect the new selection. Any previous selection in the list box is removed. Returns�R
�9 @���2������������The zero-based index of the item selected if the message is successful. The return value is CB_ERR if nSelect is greater than the number of items in the list or if nSelect is set to -1, which clears the selection. 5��) "��2�������See Alsob,�M
6 <�X�2����H�ʶ��������CComboBox::GetCurSel, CB_SETCURSEL �d��
1���������I�
$�CCComboBox::SetEditSelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")BM
$) "�2�2�������CComboBox::SetEditSelp8�
�8 @�p�r�=���~��������BOOL SetEditSel( int nStartChar, int nEndChar );)$�& ��2������K�2 4�2�R�=��~Q�=�����ParameterDescriptiong/�{@8 >�_�R�=��~�=���������nStartCharSpecifies the starting position. If the starting position is set to -1, then any existing selection is removed. nEndCharSpecifies the ending position. If the ending position i{@M
s set to -1, then all text from the starting position to the last character in the edit control is selected. 4�@) "��2�������Remarks��{@vB/ ,�1�2����������Selects characters in the edit control of a combo box. The positions are zero-based. To select the first character of the edit control, you specify a starting position of 0. The ending position is for the character just after the last character to select. For example, to select the first four characters of the edit control, you would use a starting position of 0 and an ending position of 4. Returns���@]CH ^�?�2������������Kjz̀����TRUE if the member function is successful; otherwise FALSE. It is CB_ERR if CComboBox has the CBS_DROPDOWNLIST style or doesn't have a list box. 5vB�C) "��2�������See Alsod.]C�C6 <�\�2��������������CComboBox::GetEditSel, CB_SETEDITSEL �e�C�D1���������J�D�DOHCComboBox::SetItemDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")C�C�D) "�4�2�������CComboBox::SetItemDatap8�D?E8 @�p�r�=���~��������int SetItemData( int nIndex, DWORD dwItemData );)�DhE& ��2������K?E�E2 4�2�R�I��~Q�I�����ParameterDescription�|hEfF7 >���R�I��~�I���������nIndexContains a zero-based index to the item to set. dwItemDataContains the new value to associate with the item. 4�E�F) "��2�������Remarks�VfFG- *���2���������Sets the 32-bit value associated with the specified item in a combo box. ReturnsH�FeG) "�>�2�������CB_ERR if an error occurs. 5G�G) "��2�������See Also�geGOHN l���2�����C�������_u2����a�s������CComboBox::GetItemData, CB_SETITEMDATA, CComboBox::AddString, CComboBox::InsertString �f�G�H1���������K�H*I�LCComboBox::ShowDropDownEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")DOH*I) "�6�2�������CComboBox::ShowDropDowni1�H�I8 @�b�r�=���~��������void ShowDropDown( BOOL bShowIt = TRUE );)*I�I& ��2������K�IJ2 4�2�R�=��~Q�=�����ParameterDescription���I�J< F�9�R�=��~�=���������bShowItSpecifies whether the drop-down list box is to be shown or hidden. A value of TRUE shows the list box. A value of FALSE hides the list box. 4JK) "��2�������Remarksa�JtLS t��2�����Kjz̀���Kjz̀����Kjz̀�������Shows or hides the list box of a combo box that has the CBS_DROPDOWN or CBS_DROPDOWNLIST style. By default, a combo box of this style will show the list box. This member function has no effect on a combo box created with the CBS_SIMPLE style. See Also?K�L* $�*�2��������CB_SHOWDROPDOWN �XtL<M1C��������L<MrMqN	class CDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_003')")6
�LrM) "��2�������class CDC8<M�M) "��2�������Description�}rMm�: B���2�������������The CDC class defines a class of device-context objects. The CDC object provides member functions for working with a device context, such as a display or printer, as well as members for working with a display context associated with the client area of a window. Do all drawing through the member functions of a CDC object. The class provides member functions for device-context operations, working with drawing tools, type-safe GDI object selection, and working  with colors and palettes. It also provides member functions for getti�Mm��Lng and setting drawing attributes, mapping, working with the viewport, working with the window extent, converting coordinates, working with regions, clipping, drawing lines, drawing simple shapes, ellipses, and polygons. Member functions are also provided for drawing text, working with fonts, using printer escapes, scrolling, and playing metafiles. �p�MA�d ����2������������-{�����m�vJ�����������To use a CDC object, construct it, and then call its member functions, which parallel Windows functions that use device contexts or display contexts. For specific uses, the Microsoft Foundation Class Library provides several classes derived from CDC--in particular class CPaintDC, which encapsulates calls to BeginPaint and EndPaint. Class CClientDC manages a display context associated with a window's client area. Class CWindowDC manages a display context associated with an entire window, including its frame and controls. Class CMetaFileDC associates a device context associated with a metafile. �_m�܄< H���2������+��������CDC supports the Attach/Detach idiom for Windows handles described in CWnd. See Also�?A�o�T x�~�2���㚳�*���������=�D�����?��;������CPaintDC, CWindowDC, CClientDC, CMetaFileDC ]-܄̅0 0�Z�2����������Public MembersConstruction/Destruction�Ho�b�N l���R�ˀQ���L�;���������&���������CDCConstructs a CDC object. ~CDCDestroys a CDC object. ;̅��) "�$�2�������Initialization-�b�ʈl ����R��~��A��Q��������Q������m��;������p�v�����������CreateDCCreates a device context for a specific device. CreateICCreates an information context for a specific device. This provides a fast way to get information about the device without creating a device context. CreateCompatibleDCCreates a memory device context that is compatible with another device context. You can use it to prepare images in memory. DeleteDCDeletes the Windows DC associated with this CDC object. E���) "�8�2�������Device-Context Functions�WʈҊl ����R���{~���U3<ڀ�����F�1ƀ�����kfDӀ����F�1ƀ����k<�������GetDCOrgObtains the final translation origin for the device context. SaveDCSaves the current state of the device context. RestoreDCRestores the device context to a previous state saved with SaveDC. GetDeviceCapsRetrieves a specified kind of device-specific information about a given display device's capabilities. C��) "�4�2�������Drawing-Tool Functions8�ҊM�R r���R�w��~�w�
0�������6o/�������ݪ\������GetBrushOrgRetrieves the origin of the current brush. SetBrushOrgSpecifies the origin for the next brush selected into a device context. EnumObjectsEnumerates the pens and brushes available in a device context. H���) "�>�2�������Type-Safe Selection Helpers��M���D V�Q�R��3~����`.������_�;������SelectObjectSelects a GDI drawing object, such as a pen. SelectStockObjectSelects one of the predefined stock pens, brushes, or fonts provided by Windows. N%��ύ) "�J�2�������Color and Color Palette Functions���ݏ` ��]�R���_~�����������ذ:��������4������o��#������GetNearestColorRetrieves the closest logical color to a specified logical color that the given device can represent. SelectPaletteSelects the logical palette. RealizePaletteMaps palette entries in the current logical palette to the system palette. UpdateColorsUpdates the client area of the device context by matching the current colors in the client area to the system palette on a pixel-by-pixel basis. Hύ1�) "�>�2����ݏ1��L���Drawing-Attribute Functions-�ݏ^�� ��+�R�ׁE~���b�ᎀ�������������5�������ƃ�������LЀ�����N�@�������{��À�����g�m������GetBkColorRetrieves the current background color. SetBkColorSets the current background color. GetBkModeRetrieves the background mode. SetBkModeSets the background mode. GetPolyFillModeRetrieves the current polygon-filling mode. SetPolyFillModeSets the polygon-filling mode. GetROP2Retrieves the current drawing mode. SetROP2Sets the current drawing mode. 9�1���` ����R�ׁE~���48#�������@A�B�������<�������B�������GetStretchBltModeRetrieves the current bitmap-stretching mode. SetStretchBltModeSets the bitmap-stretching mode. GetTextColorRetrieves the current text color. SetTextColorSets the text color. >^���) "�*�2�������Mapping Functions�����| ƀ+�R�݁?~���3܁j������׸�������w|
������B�������+�Հ������0|
������GetMapModeRetrieves the current mapping mode. SetMapModeSets the current mapping mode. GetViewportOrgRetrieves the x- and y-coordinates of the viewport origin. SetViewportOrgSets the viewport origin. OffsetViewportOrgModifies the viewport origin relative to the coordinates of the current viewport origin. GetViewportExtRetrieves the x- and y-extents of the viewport. a���G�| ƀ��R�݁?~������������,���������������,�0������+������㝢������SetViewportExtSets the x- and y-extents of the viewport. ScaleViewportExtModifies the viewport extent relative to the current values. GetWindowOrgRetrieves the x- and y-coordinates of the origin of the associated window. SetWindowOrgSets the window origin of the device context. OffsetWindowOrgModifies the window origin relative to the coordinates of the current window origin. GetWindowExtRetrieves the x- and y-extents of the associated window. ����"�D V�/�R�݁?~���?0������9a�)������SetWindowExtSets the x- and y-extents of the associated window. ScaleWindowExtModifies the window extents relative to the current values. AG�c�) "�0�2�������Coordinate Functions��"�P�D V�S�R����)u�E�������狀�����DPtoLPConverts device points or rectangles into logical points or rectangles. LPtoDPConverts logical points or rectangles into device points or rectangles. =c���) "�(�2�������Region FunctionsJ�P���` ����R�=��~�=�H]Cl������^��������o����������/������FillRgnFills a specific region with the specified brush. FrameRgnDraws a border around a specific region using a brush. InvertRgnInverts the colors in a region. PaintRgnFills a region with the selected brush. ?���) "�,�2�������Clipping Functions,���B�` ����R��-~���f�������KXx������`�g�������]������GetClipBoxRetrieves the dimensions of the tightest bounding rectangle around the current clipping boundary. SelectClipRgnSelects the given region as the current clipping region. ExcludeClipRectCreates a new clipping region that consists of the existing clipping region minus the specified rectangle. ExcludeUpdateRgnPrevents drawing within invalid areas of a window by excluding an updated region in the window from a clipping region. �p�	` ����R��-~����^1�������}\������ݹp������,�������IntersectClipRectCreates a new clipping region by forming the intersection of the current region and a rectangle. OffsetClipRgnMoves the clipping region of the given device. PtVisibleSpecifies whether the given point is within the clipping region. RectVisibleDetermines whether any part of the given rectangle lies within the cB�	�Llipping region. BB�`	) "�2�2�������Line-Output Functions�I		n ����R��9~���Zs=������N�x��������s�������4�;��������/&������GetCurrentPositionRetrieves the current position of the pen (in logical coordinates). MoveToMoves the current position. LineToDraws a line from the current position up to, but not including, a point. ArcDraws an elliptical arc. PolylineDraws a set of line segments connecting the specified points. E`	\	) "�8�2�������Simple Drawing Functions&�	�	` ����R�I��~�I��P/�����㣲�^���������������O�|������FillRectFills a given rectangle by using a specific brush. FrameRectDraws a border around a rectangle. InvertRectInverts the contents of a rectangle. DrawIconDraws an icon. J!\	�	) "�B�2�������Ellipse and Polygon Functionsg��	3	| ƀ��R���s~��㮎俀�����"�`&���������
������
*<������� O�X������l$p������ChordDraws a chord (a closed figure bounded by the intersection of an ellipse and a line segment). DrawFocusRectDraws a rectangle in the style used to indicate focus. EllipseDraws an ellipse. PieDraws a pie-shaped wedge. PolygonDraws a polygon consisting of two or more points (vertices) connected by lines. PolyPolygonCreates two or more polygons that are filled using the current polygon-filling mode. The polygons may be disjoint or they may overlap. ��	C	D V���R���s~��㭿�C�����ㄻ�n������RectangleDraws a rectangle using the current pen and filled using the current brush. RoundRectDraws a rectangle with rounded corners using the current pen and filled using the current brush. =3	�	) "�(�2�������Bitmap FunctionsO�C	�		n ����R�a��~�a㭣嫀��������2������__Zπ�����깵܀������P������PatBltCreates a bit pattern. BitBltCopies a bitmap from a specified device context. StretchBltMoves a bitmap from a source rectangle and device into a destination rectangle, stretching or compressing the bitmap if necessary to fit the dimensions of the destination rectangle. GetPixelRetrieves the RGB color value of the pixel at the specified point. SetPixelSets the pixel at the specified point to the closest approximation of the specified color. ��	�
	P n�a�R�a��~�a��*HQ������������*HQ�����FloodFillFills an area with the current brush. ExtFloodFillFills an area with the current brush. Provides more flexibility than the FloodFill member function. ;�		
	) "�$�2�������Text Functions��
	�
	n ��+�R�;��}�;�%���������������ヮӀ�����h�|�������|>������TextOutWrites a character string at a specified location, using the currently selected font. ExtTextOutWrites a character string within a rectangular region, using the currently selected font. TabbedTextOutWrites a character string at a specified location, expanding tabs to the values specified in an array of tab-stop positions. DrawTextDraws formatted text in the specified rectangle. GetTextExtentComputes the width and height of a line of text, using the current font to determine the dimensions. �
	�	| ƀ?�R�;��}�;�m��������h������,������� ɟ������B���������U�������GetTabbedTextExtentComputes the width and height of a character string. GrayStringDraws dimmed (gray) text at the given location. GetTextAlignRetrieves the text-alignment flags. SetTextAlignSets the text-alignment flags. GetTextFaceCopies the typeface name of the current font into a buffer as a null-terminated string. GetTextMetricsRetrieves the metrics for the current font. F��
	�@	R r���R�;��}�;�]�������㌬�L��������Ȁ�����SetT�	�@	�LextJustificationAdds space to the break characters in a string. GetTextCharacterExtraRetrieves the current setting for the amount of intercharacter spacing. SetTextCharacterExtraSets the amount of intercharacter spacing. ;�	5A	) "�$�2�������Font Functions�C�@	�B	R r���R���}������������J�G�������5�_������GetCharWidthRetrieves the widths of individual characters in a consecutive group of characters from the current font. SetMapperFlagsAlters the algorithm that the font mapper uses when it maps logical fonts to physical fonts. GetAspectRatioFilterRetrieves the setting for the current aspect-ratio filter. E5A	C	) "�8�2�������Printer Escape Functionsz�B	�E	n ���R����~���O�������=�������orw������x��������ۀ�����EscapeAllows applications to access facilities of a particular device that are not directly available through GDI. Escape calls made by an application are translated and sent to the device driver. StartDocInforms the device driver that a new print job is starting. StartPageInforms the device driver that a new page is starting. EndPageInforms the device driver that a page is ending. SetAbortProcSets a programmer-supplied callback function that Windows calls if a print job must be aborted. +�C	�F	\ ����R����~����������S�N�����S�N������=������AbortDocTerminates the current print job, erasing everything the application has written to the device since the last EndDoc escape. EndDocEnds a print job started by a StartDoc escape. @�E	�F	) "�.�2�������Scrolling Functions}H�F	qG	5 :���R����n@M������ScrollDCScrolls a rectangle of bits horizontally and vertically. ?�F	�G	) "�,�2�������Metafile Functions��qG	kH	6 :��R�m��~�m�3�ـ�����PlayMetaFilePlays the contents of the specified metafile on the given device. The metafile can be played any number of times. B�G	�H	) "�2�2�������Windows 3.1 FunctionsI�kH	�J	r ����R��~���`������Ń<��������=�������=�������%AҀ�������SetBoundsRectControls the accumulation of bounding-rectangle information for the specified device context. GetBoundsRectReturns the current accumulated bounding rectangle for the specified device context. StartDocStarts a print job. For Windows version 3.1, this function replaces the STARTDOC printer escape. QueryAbortCalls the AbortProc callback function for a printing application and queries whether the printing should be terminated. |*�H	rM	R r�U�R��~���3�������Fk������A*�������GetCharABCWidthsRetrieves the widths of consecutive characters in a specified range from the current TrueType font. The widths are returned in logical units. This function succeeds only with TrueType fonts. GetFontDataRetrieves font metric information from a scalable font file. The information to retrieve is identified by specifying an offset into the font file and the length of the information to return. GetKerningPairsRetrieves the character kerning pairs for the font that is currently selected in the specified device context. ���J	qN	D V�w�R��~�㨫`c�������/8#������GetOutlineTextMetricsRetrieves font metric information for TrueType fonts. GetGlyphOutlineRetrieves the outline curve or bitmap for an outline character in the current font. �VrM	�N	1�	��������M�N	1O	S�	CDC::AbortDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")9qN	1O	(  �"�������CDC::AbortDoc?�N	pO	, (�&�r�=���~����int AbortDoc();)1O	�O	& ��2������4pO	�O	) "��2�������Remarks���O	́	A P�g�2�����S�N������O	́	qN	������Terminates the current print job, erasing everything the application has written to the device since the last call to EndDoc. This member function is provided as a convenient way to send the ABORTDOC escape. It allows the application to access facilities of a particular device that are not directly available through GDI. The escape call is translated and sent to the device driver. AbortDoc should be used to terminate: �W�O	b�	> L���R��2�h��"����ۀ����Printing operations that do not specify an abort function using SetAbortProc. �é	�	> L���R��2�h��"��������Printing operations that have not yet reached their first NEWFRAME or NEXTBAND escape call. 
�b�	�	R r�w�����S�N�����㪌�����������If an application encounters a printing error or a canceled print operation, it must not attempt to terminate the operation by using either the EndDoc or AbortDoc member functions of class CDC. GDI automatically terminates the operation before returning the error value. If the application displays a dialog box to allow the user to cancel the print operation, it must call AbortDoc before destroying the dialog box. Returns��	��	% ��������A positive value if successful, or a negative value if an error has occurred. The following list shows common error values: C�	��	2 4�"�R��~Q������ValueMeaningZ��	S�	H ^�%�R��~������������������SP_ERRORGeneral error. SP_OUTOFDISKNot enough disk space is currently available for spooling, and no more space will become available. SP_OUTOFMEMORYNot enough memory is available for spooling. SP_USERABORTUser terminated the job through the Print Manager. �Q��	Շ	1!��������NՇ		�	�	CDC::ArcEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")4S�		�	(  ��������CDC::Arc�Շ	�	v ��=�r�=���~�����������������������������BOOL Arc( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4 );BOOL Arc( LPRECT lpRect, POINT ptStart, POINT ptEnd );)	�	F�	& ��2������K�	��	2 4�2�R�=��~Q�=�����ParameterDescription�?F�	 �	P n��R�=��~�=���������������������x1Specifies the x-coordinate of the upper-left corner of the bounding rectangle (in logical units). y1Specifies the y-coordinate of the upper-left corner of the bounding rectangle (in logical units). x2Specifies the x-coordinate of the lower-right corner of the bounding rectangle (in logical units). y2Specifies the y-coordinate of the lower-right corner of the bounding rectangle (in logical units). x3Specifies the x-coordinate of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. �S��	ӎ	` ����R�=��~�=����������������������	�����y3Specifies the y-coordinate of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. x4Specifies the x-coordinate of the point that defines the arc's endpoint (in logical units). This point does not have to lie exactly on the arc. y4Specifies the y-coordinate of the point that defines the arc's endpoint (in logical units). This point does not have to lie exactly on the arc. lpRectSpecifies the bounding rectangle (in logical units). You can pass either a LPRECT or a CRect object for this parameter. a� �	@�	h ����R�=��~�=������T�����'�����������T�����'������ptStartSpecifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. You can pass either a POINTӎ	@�	S�	 structure or a CPoint object for this parameter. ptEndSpecifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc. You can pass either a POINT structure or a CPoint object for this parameter. 4ӎ	t�	) "��2�������RemarkssK@�	��	( ���2�������Draws an elliptical arc. The arc drawn by using the function is a segment of the ellipse defined by the specified bounding rectangle. The actual starting point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified starting point intersects the ellipse. The actual ending point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified ending point intersects the ellipse. The arc is drawn in a counterclockwise direction. Since an arc is not a closed figure, it is not filled. 4t�	�	) "��2�������Returns`1��	{�	/ .�b�2���������TRUE if the arc is drawn; otherwise FALSE. 5�	��	) "��2�������See AlsoQ{�	�	6 <�6�2���㮎俀�������CDC::Chord, ::Arc �T��	��	1���������O��	��	�

CDC::BitBltEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")8�	��	) "��2�������CDC::BitBlt�w��	��	\ ����r�=���~��������������������BOOL BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop );)��	��	& ��2������K��	�	2 4�2�R�=��~�=�����ParameterDescription�L��	��	h ����R�=��~�=�������������������㪌���������xSpecifies the logical x-coordinate of the upper-left corner of the destination rectangle. ySpecifies the logical y-coordinate of the upper-left corner of the destination rectangle. nWidthSpecifies the width (in logical units) of the destination rectangle and source bitmap. nHeightSpecifies the height (in logical units) of the destination rectangle and source bitmap. pSrcDCPointer to a CDC object that identifies the device context from which the bitmap will be copied. It must be NULL if dwRop specifies a raster operation that does not include a source. )��	��	F Z���R�=��~�=���������������xSrcSpecifies the logical x-coordinate of the upper-left corner of the source bitmap. ySrcSpecifies the logical y-coordinate of the upper-left corner of the source bitmap. dwRopSpecifies the raster operation to be performed. Raster-operation codes define how the graphics device interface (GDI) combines colors in output operations that involve a current brush, a possible source bitmap, and a destination bitmap. The following lists raster-operation codes for dwRop: F��	(�	2 4�(�R���E~Q�������CodeDescription%���	M�	X ~���R���E~���������������������������BLACKNESSTurns all output black. DSTINVERTInverts the destination bitmap. MERGECOPYCombines the pattern and the source bitmap using the Boolean AND operator. MERGEPAINTCombines the inverted source bitmap with the destination bitmap using the Boolean OR operator. NOTSRCCOPYCopies the inverted source bitmap to the destination. NOTSRCERASEInverts the result of combining the destination and source bitmaps using the Boolean OR operator. H�(�	�
P n���R���E~�����������������������PATCOPYCopies the pattern to the destination bitmap. PATINVERTCombines the destination bitmap with the pattern using the Boolean XOR operator. PATPAINTCombines the inverted source bitmap with the pattern using the Boolean OR operator. Combines the result of this operation with the destination bitmap using the Boolean OR operator. SRCANDCoM�	�
�	mbines pixels of the destination and source bitmaps using the Boolean AND operator. SRCCOPYCopies the source bitmap to the destination bitmap. �cM�	L
H ^���R���E~�������������������SRCERASEInverts the desination bitmap and combines the result with the source bitmap using the Boolean AND operator. SRCINVERTCombines pixels of the destination and source bitmaps using the Boolean XOR operator. SRCPAINTCombines pixels of the destination and source bitmaps using the Boolean OR operator. WHITENESSTurns all output white. �k�
�
, (���R�=��~�=����For a complete list of raster-operation codes, see the Windows Software Development Kit documentation. 4L

) "��2�������Remarks!��
8
S t���2�����������������e�z������Copies a bitmap from the source device context to this current device context. The application can align the windows or client areas on byte boundaries to ensure that the BitBlt operations occur on byte-aligned rectangles. (Set the CS_BYTEALIGNWINDOW or CS_BYTEALIGNCLIENT flags when you register the window classes.) BitBlt operations on byte-aligned rectangles are considerably faster than BitBlt operations on rectangles that are not byte aligned. If you want to specify class styles such as byte-alignment or your own device context, you will have to register a window class rather than relying on the Foundation classes to do it for you. Use the Foundation global function AfxRegisterWndClass. T
�
F Z��2���������__Z�����GDI transforms nWidth and nHeight, once by using the destination display context, and once by using the source display context. If the resulting extents do not match, GDI uses the Windows StretchBlt function to compress or stretch the source bitmap as necessary. If destination, source, and pattern bitmaps do not have the same color format, the BitBlt function converts the source and pattern bitmaps to match the destination. The foreground and background colors of the destination are used in the conversion. ��8
i	
F Z�/�2���������k<���������Note that not all device contexts support BitBlt. To check whether a given device context does support BitBlt, use GetDeviceCaps. Returnsc4�
�	
/ .�h�2���������TRUE if the bitmap is drawn; otherwise FALSE. 5i	


) "��2�������See Also�v�	
�

` ����2����k<����㭣嫀���B�����__Zπ���������CDC::GetDeviceCaps, CDC::PatBlt, CDC::SetTextColor, CDC::StretchBlt, ::StretchDIBits, ::BitBlt �Q

Y
1���������PY
�
�
CDC::CDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")5�

�
) "��2�������CDC::CDC6
Y
�
, (��r�=���~����CDC();)�
�
& ��2������4�
!
) "��2�������Remarksd+�
�
9 B�V�2����㪌��������Constructs a CDC object. See Alsod(!
�
< H�P�2����A��Q������Q������CDC::CreateDC, CDC::CreateIC �R�
l
1��������Ql
�
r
CDC::~CDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")6
�
�
) "��2�������CDC::~CDC?l
�
, (�&�r�=���~����virtual ~CDC();)�


& ��2������4�
>
) "��2�������Remarks��


L f��2����㪌��������������Destroys a CDC object. If a Windows HDC is attached to the CDC object, the destructor detaches the HDC and deletes it. See AlsoY#>
r
6 <�F�2����p�v���������CDC::DeleteDC, ::DeleteDC �S
@
11��������R@
C@
CL
CDC::ChordEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")r
@
r
7r
C@
) "��2�������CDC::Chord�@
[A
v ��E�r�=���~�����������������������������BOOL Chord( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4 );BOOL Chord( LPRECT lpRect, POINT ptStart, POINT ptEnd );)C@
�A
& ��2������K[A
�A
2 4�2�R�=��~Q�=�����ParameterDescription��A
�C
H ^���R�=��~�=�����������������x1Specifies the x-coordinate of the upper-left corner of the chord's bounding rectangle (in logical units). y1Specifies the y-coordinate of the upper-left corner of the chord's bounding rectangle (in logical units). x2Specifies the x-coordinate of the lower-right corner of the chord's bounding rectangle (in logical units). y2Specifies the y-coordinate of the lower-right corner of the chord's bounding rectangle (in logical units). �'�A
iF
h ��O�R�=��~�=��������������������������	�����x3Specifies the x-coordinate of the point that defines the chord's starting point (in logical units). y3Specifies the y-coordinate of the point that defines the chord's starting point (in logical units). x4Specifies the x-coordinate of the point that defines the chord's endpoint (in logical units). y4Specifies the y-coordinate of the point that defines the chord's endpoint (in logical units). lpRectSpecifies the bounding rectangle (in logical units). You can pass either a LPRECT or a CRect object for this parameter. i�C
�H
h ���R�=��~�=������T�����'�����������T�����'������ptStartSpecifies the x- and y-coordinates of the point that defines the chord's starting point (in logical units). This point does not have to lie exactly on the chord. You can pass either a POINT structure or a CPoint object for this parameter. ptEndSpecifies the x- and y-coordinates of the point that defines the chord's ending point (in logical units). This point does not have to lie exactly on the chord. You can pass either a POINT structure or a CPoint object for this parameter. 4iF
I
) "��2�������Remarks!��H
'K
W |���2����������������������Draws a chord (a closed figure bounded by the intersection of an ellipse and a line segment). The (x1, y1) and (x2, y2) parameters specify the upper-left and lower-right corners, respectively, of a rectangle bounding the ellipse that is part of the chord. The (x3, y3) and (x4, y4) parameters specify the endpoints of a line that intersects the ellipse. The chord is drawn by using the selected pen and filled by using the selected brush. 4I
[K
) "��2�������Returnsb3'K
�K
/ .�f�2���������TRUE if the chord is drawn; otherwise FALSE. 5[K
�K
) "��2�������See AlsoQ�K
CL
6 <�6�2����4�;���������CDC::Arc, ::Chord �`�K
�L
1F��������S�L
M
b�
CDC::CreateCompatibleDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")DCL
M
) "�6�2�������CDC::CreateCompatibleDC\*�L
tM
2 4�T�r�=���~������BOOL CreateCompatibleDC( CDC* pDC );)M
�M
& ��2������KtM
�M
2 4�2�R�=��~Q�=�����ParameterDescription���M
�N
< F�)�R�=��~�=���������pDCA pointer to a device context. If pDC is NULL, the function creates a memory device context that is compatible with the system display. 4�M
�N
) "��2�������Remarks%��N
�
A P���2�����������k<������Creates a memory device context that is compatible with the device specified by pDC. A memory device context is a block of memory that represents a display surface. It can be used to prepare images in memory �N
�
CL
before copying them to the actual device surface of the compatible device. When a memory device context is created, GDI automatically selects a 1-by-1 monochrome stock bitmap for it. This function can only be used to create compatible device contexts for devices that support raster operations. For more information, see the RC_BITBLT raster capability in the member function GetDeviceCaps. GDI output functions can be used with a memory device context only if a bitmap has been created and selected into that context. 4�N
Q�
) "��2�������ReturnsZ+�
��
/ .�V�2���������TRUE if successful; otherwise FALSE. 5Q�
��
) "��2�������See Also�@��
b�
B T���2����L�;�����k<���������CDC::CDC, CDC::GetDeviceCaps, ::CreateCompatibleDC �V��
�
1���������T�
#�
��
CDC::CreateDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):b�
#�
) "�"�2�������CDC::CreateDC���
�
E X�	�r�=���~������������BOOL CreateDC( const char FAR* lpDriverName, const char FAR* lpDeviceName, const char FAR* lpOutput, LPSTR lpInitData );)#�
�
& ��2������K�
`�
2 4�2�R�s��~Q�s�����ParameterDescription2��
��
J b���R�s��~�s���������������lpDriverNamePoints to a null-terminated string that specifies the MS-DOS filename (without extension) of the device driver (for example, EPSON). You can also pass a CString object for this parameter. lpDeviceNamePoints to a null-terminated string that specifies the name of the specific device to be supported (for example, EPSON FX-80). The lpDeviceName parameter is used if the module supports more than one device. You can also pass a CString object for this parameter. �;`�
#�
V z�w�R�s��~�s�������������������lpOutputPoints to a null-terminated string that specifies the MS-DOS file or device name for the physical output medium (file or output port). You can also pass a CString object for this parameter. lpInitDataPoints to a DEVMODE structure containing device-specific initialization data for the device driver. The Windows ExtDeviceMode function retrieves this structure filled in for a given device. The lpInitData parameter must be NULL if the device driver is to use the default initialization (if any) specified by the user through the Control Panel. 4��
W�
) "��2�������Remarksq*#�
ȋ
G \�U�2������������������Creates a device context for the specified device. The lpDriverName, lpDeviceName, and lpOutput parameters specify the device driver, device name, and physical output medium (file or port), respectively. The DRVINIT.H header file is required if the DEVMODE structure is used. ReturnsZ+W�
"�
/ .�V�2���������TRUE if successful; otherwise FALSE. 5ȋ
W�
) "��2�������See AlsoS#"�
��
0 0�F�2����������::ExtDeviceMode, ::CreateDC �VW�
1�
1
��������U1�
k�
��
CDC::CreateICEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):��
k�
) "�"�2�������CDC::CreateIC��1�
4�
E X�	�r�=���~������������BOOL CreateIC( const char FAR* lpDriverName, const char FAR* lpDeviceName, const char FAR* lpOutput, LPSTR lpInitData );)k�
]�
& ��2������K4�
��
2 4�2�R�s��~Q�s�����ParameterDescription(�]�
��
J b���R�s��~�s���������������lpDriverNamePoints to a null-terminated string that specifies the MS-DOS filename (without extension) of the device driver (for example, EPSON). You can pass a CString object for this parameter. lpDeviceNamePoints to a null-terminated string that specifies the ��
��
��
name of the specific device to be supported (for example, EPSON FX-80). The lpDeviceName parameter is used if the module supports more than one device. You can pass a CString object for this parameter. Q���
-�
V z���R�s��~�s��������������A��Q�����lpOutputPoints to a null-terminated string that specifies the MS-DOS file or device name for the physical output medium (file or port). You can pass a CString object for this parameter. lpInitDataPoints to device-specific initialization data for the device driver. The lpInitData parameter must be NULL if the device driver is to use the default initialization (if any) specified by the user through the Control Panel. See CreateDC for the data format for device-specific initialization. 4��
a�
) "��2�������RemarksK#-�
��
( �G�2�������Creates an information context for the specified device. The information context provides a fast way to get information about the device without creating a device context. MS-DOS device names follow MS-DOS conventions; an ending colon (:) is recommended, but optional. Windows strips the terminating colon so that a device name ending with a colon is mapped to the same port as the same name without a colon. The driver and port names must not contain leading or trailing spaces. GDI output functions cannot be used with information contexts. 4a�
��
) "��2�������ReturnsZ+��
:�
/ .�V�2���������TRUE if successful; otherwise FALSE. 5��
o�
) "��2�������See AlsoY#:�
��
6 <�F�2����A��Q��������CDC::CreateDC, ::CreateIC �Vo�
O�
1,��������VO�
��
��
CDC::DeleteDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):��
��
) "�"�2�������CDC::DeleteDC@O�
��
, (�(�r�=���~����BOOL DeleteDC();)��
��
& ��2������4��
&�
) "��2�������Remarks�T��
��
d ����2������㪌�������(Uc�����M$����=�D������In general, do not call this function; the destructor will do it for you. The DeleteDC member function deletes the Windows device context that is attached to the current CDC object. If this CDC object is the last active device context for a given device, the device is notified and all storage and system resources used by the device are released. An application must not delete a device context whose handle was obtained by calling CWnd::GetDC. Instead, it must call CWnd::ReleaseDC to free the device context. The CClientDC class is provided to wrap this functionality. ��&�
��
X ~�+�2�������A��Q������Q����m��;��������The DeleteDC function is generally used to delete device contexts created with CreateDC, CreateIC, or CreateCompatibleDC. Returns���
��
3 4���2����������Specifies whether the device context has been deleted. TRUE if the device context is successfully deleted (regardless of whether the deleted device context is the last context for the device). FALSE if an error occurs. 5��
�
) "��2�������See Alsoo-��
��
B T�Z�2����L�;�����&���������CDC::CDC, CDC::~CDC, ::DeleteDC �T�
	�
1���������W	�
A�
�CDC::DPtoLPEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")8��
A�
) "��2�������CDC::DPtoLP�f	�
��
E Z���r�=���~�������������void DPtoLP( LPPOINT lpPoints, int nCount = 1 ) const;void DPtoLP( LPRECT lpRect ) const;)A�
�
& ��2������K��
`�
2 4�2�R�=��~Q�=�����ParameterDescription�1�

p ��c�R�=��~�=������T�����'�������������������	�����lpPointsPoints to an array of POINT struc`�

��
tures or CPoint objects. nCountSpecifies the number of points in the array. lpRectPoints to a RECT structure or CRect object. This parameter is used for the simple case of converting one rectangle from device points to logical points. 4`�
A) "��2�������Remarkse7
�. *�o�2���������Converts device points into logical points. The function maps the coordinates of each point from the device coordinate system into GDI's logical coordinate system. The conversion depends on the current mapping mode and the settings of the origins and extents for the device's window and viewport. See AlsoUA�6 <�>�2�����狀�������CDC::LPtoDP, ::DPtoLP �[��1���������X��CDC::DrawFocusRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")?��) "�,�2�������CDC::DrawFocusRect\*�"2 4�T�r�=���~������void DrawFocusRect( LPRECT lpRect );)�K& ��2������K"�2 4�2�R�=��~Q�=�����ParameterDescription�}KZG ^���R�=��~�=����������	�����lpRectPoints to a RECT structure or a CRect object that specifies the coordinates of the rectangle to be drawn. 4��) "��2�������Remarks�Z�4 6���2�����������Draws a rectangle in the style used to indicate focus. Since this is an XOR function, calling this function a second time with the same rectangle removes the rectangle from the display. The rectangle drawn by this function cannot be scrolled. To scroll an area containing a rectangle drawn by this function, first call DrawFocusRect to remove the rectangle from the display, then scroll the area, and then call DrawFocusRect again to draw the rectangle in the new position. 5��) "��2�������See Also?�* $�*�2��������::DrawFocusRect �V��1��������Y���CDC::DrawIconEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):�) "�"�2�������CDC::DrawIcon�f��	Q r���r�=���~�����������������BOOL DrawIcon( int x, int y, HICON hIcon );BOOL DrawIcon( POINT point, HICON hIcon );)��	& ��2������K�	
2 4�2�R�=��~�=�����ParameterDescription�}�	�` ����R�=��~�=������������������T�����'������xSpecifies the logical x-coordinate of the upper-left corner of the icon. ySpecifies the logical y-coordinate of the upper-left corner of the icon. hIconIdentifies the handle of the icon to be drawn. pointSpecifies the logical x- and y-coordinates of the upper-left corner of the icon. You can pass a POINT structure or a CPoint object for this parameter. 4
) "��2�������Remarks*��?X ~���2����㪌������������������Draws an icon on the device represented by the current CDC object. The function places the icon's upper-left corner at the location specified by x and y. The location is subject to the current mapping mode of the device context. The icon resource must have been previously loaded by using the functions CWinApp::LoadIcon, CWinApp::LoadStandardIcon, or CWinApp::LoadOEMIcon. The MM_TEXT mapping mode must be selected prior to using this function. 4s) "��2�������Returnsj;?�/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5s) "��2�������See Also�`��N l���2����c�������zd����p��������CWinApp::LoadIcon, CWinApp::LoadStandardIcon, CWinApp::LoadOEMIcon, ::DrawIcon �VS@1���������ZS@�@Z�CDC::DrawTextE�S@�nableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):��@) "�"�2�������CDC::DrawText�^S@/AD X���r�=���~������������int DrawText( const char FAR* lpString, int nCount, LPRECT lpRect, UINT nFormat );)�@XA& ��2������K/A�A2 4�2�R�=��~Q�=�����ParameterDescription?�XA�Cp ����R�=��~�=��������������������������	�����lpStringPoints to the string to be drawn. If nCount is -1, the string must be null-terminated. nCountSpecifies the number of bytes in the string. If nCount is -1, then lpString is assumed to be a long pointer to a null-terminated string and DrawText computes the character count automatically. lpRectPoints to a RECT structure or CRect object that contains the rectangle (in logical coordinates) in which the text is to be formatted. ���A�D0 .�)�R�=��~�=�����nFormatSpecifies the method of formatting the text. It can be any combination of the following values (combine using the bitwise-OR operator): C�C�D2 4�"�R�ۃg}Q�������ValueMeaning�>�D}GV z�}�R�ۃg}���������������������DT_BOTTOMSpecifies bottom-justified text. This value must be combined with DT_SINGLELINE. DT_CALCRECTDetermines the width and height of the rectangle. If there are multiple lines of text, DrawText will use the width of the rectangle pointed to by lpRect and extend the base of the rectangle to bound the last line of text. If there is only one line of text, DrawText will modify the right side of the rectangle so that it bounds the last character in the line. In either case, DrawText returns the height of the formatted text but does not draw the text. }�D�J| ƀ�R�ۃg}���������������������������������������DT_CENTERCenters text horizontally. DT_EXPANDTABSExpands tab characters. The default number of characters per tab is eight. DT_EXTERNALLEADINGIncludes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text. DT_LEFTAligns text flush-left. DT_NOCLIPDraws without clipping. DrawText is somewhat faster when DT_NOCLIP is used. DT_NOPREFIXTurns off processing of prefix characters. Normally, DrawText interprets the ampersand (&) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&&) mnemonic-prefix characters as a directive to print a single ampersand. By specifiying DT_NOPREFIX this processing is turned off. ��}G�Md ���R�ۃg}�������������������������������DT_RIGHTAligns text flush-right. DT_SINGLELINESpecifies single line only. Carriage returns and linefeeds do not break the line. DT_TABSTOPSets tab stops. The high-order byte of nFormat is the number of characters for each tab. The default number of characters per tab is eight. DT_TOPSpecifies top-justified text (single line only). DT_VCENTERSpecifies vertically centered text (single line only). DT_WORDBREAKSpecifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by lpRect. A carriage return--linefeed sequence will also break the line. ���J�NQ p�?�R�=��~�=����������������Note that the values DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIP, and DT_NOPREFIX values cannot be used with the DT_TABSTOP value. 4�M	O) "��2�������Remarks���N܁F Z��2�����������������Draws formatted text in the rectangle specified by lpRect. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given	O܁� rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by nFormat. This member function uses the device context's selected font, text color, and background color to draw the text. Unless the DT_NOCLIP format is used, DrawText clips the text so that the text does not appear outside the given rectangle. All formatting is assumed to have multiple lines unless the DT_SINGLELINE format is given. ��	O��4 6�5�2�����������If the selected font is too large for the specified rectangle, the DrawText member function does not attempt to substitute a smaller font. ReturnsA܁�& �6�2������The height of the text. 5�� �) "��2�������See Also:�Z�* $� �2��������::DrawText �U ���1���������[���{�CDC::EllipseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")9Z��) "� �2�������CDC::Ellipse�^��ȄQ r���r�=���~�����������������BOOL Ellipse( int x1, int y1, int x2, int y2 );BOOL Ellipse( LPRECT lpRect );)��& ��2������KȄ<�2 4�2�R�=��~Q�=�����ParameterDescriptionj���\ ���R�=��~�=��������������������	�����x1Specifies the logical x-coordinate of the upper-left corner of the ellipse's bounding rectangle. y1Specifies the logical y-coordinate of the upper-left corner of the ellipse's bounding rectangle. x2Specifies the logical x-coordinate of the lower-right corner of the ellipse's bounding rectangle. y2Specifies the logical y-coordinate of the lower-right corner of the ellipse's bounding rectangle. lpRectSpecifies the ellipse's bounding rectangle. You can also pass a CRect object for this parameter. 4<�ڇ) "��2�������Remarks�L��s�M h���2��������������������Draws an ellipse. The center of the ellipse is the center of the bounding rectangle specified by x1, y1, x2, and y2, or lpRect. The ellipse is drawn with the current pen and its interior is filled with the current brush. If either the width or the height of the bounding rectangle is 0, no ellipse is drawn. Returnsd5ڇ׉/ .�j�2���������TRUE if the ellipse is drawn; otherwise FALSE. 5s��) "��2�������See Alsoo-׉{�B T�Z�2����4�;����㮎俀�������CDC::Arc, CDC::Chord, ::Ellipse �T��1��������\�8���CDC::EndDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")8{�8�) "��2�������CDC::EndDoc=�u�, (�"�r�=���~����int EndDoc();)8���& ��2������4u�ҋ) "��2�������Remarks�A��`�M h���2������=������������������Ends a print job started by a call to the StartDoc member function. The member function is provided as a convenient way to send the ENDDOC escape. It allows the application to access facilities of a particular device that are not directly available through GDI. The escape call is translated and sent to the device driver. If an application encounters a printing error or a canceled print operation, it must not attempt to terminate the operation by using either EndDoc or AbortDoc. GDI automatically terminates the operation before returning the error value. 4ҋ��) "��2�������Returns��`�>�' ��2������Positive if the function is successful. Or a negative value if there is an error. The following list shows common error values: C����2 4�"�R��~Q������ValueMeaningZ>���H ^�%�R��~������������������SP_ERRORGeneral error. SP_OUTOFDISKNot enough di����{�sk space is currently available for spooling, and no more space will become available. SP_OUTOFMEMORYNot enough memory is available for spooling. SP_USERABORTUser terminated the job through the Print Manager. �U��m�1���������]m���C�CDC::EndPageEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")8����(  � �������CDC::EndPage>m���, (�$�r�=���~����int EndPage();)���& ��2������4��@�) "��2�������Remarks���+�5 8�m�2������������Informs the device that the application has finished writing to a page. This member function is typically used to direct the device driver to advance to a new page. The member function is provided as a convenient way to send the NEWFRAME escape. It allows the application to access facilities of a particular device that are not directly available through GDI. The escape call is translated and sent to the device driver. Returns�_@���& ���2������Positive if successful; otherwise, it is an error value, which can be one of the following: C+���2 4�"�R��~Q������ValueMeaning�h����P n���R��~����������������������SP_ERRORGeneral error. SP_APPABORTJob was terminated because the application's abort function returned zero. SP_USERABORTUser terminated the job through Print Manager. SP_OUTOFDISKNot enough disk space is currently available for spooling, and no more space will become available. SP_OUTOFMEMORYNot enough memory is available for spooling. 4����(  ��������See Alsod)��C�; F�R����orw�����=�������CDC::StartPage, CDC::StartDoc �Y����1P��������^��	��	CDC::EnumObjectsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")<C�	�(  �(�������CDC::EnumObjects�l����> L���r�=���~����������int EnumObjects( int nObjectType, int ( FAR PASCAL EXPORT* lpfn )( LPSTR, LPSTR ), LPSTR lpData );)	���& ��2������K��'�2 4�2�R�M��~Q�M�����ParameterDescription�X����L f���R�M��~�M�����������������nObjectTypeSpecifies the object type. It can have the values OBJ_BRUSH or OBJ_PEN. lpfnIs the procedure-instance address of the application-supplied callback function. See the "Remarks" section below. lpDataPoints to the application-supplied data. The data is passed to the callback function along with the object information. 4'���) "��2�������Remarks����L f���2�������������������Enumerates the pens and brushes available in a device context. For each object of a given type, the callback function that you pass is called with the information for that object. The system calls the callback function until there are no more objects or the callback function returns 0. Note that new features of Microsoft C/C++ let you use an ordinary function as the function passed to EnumObjects. The address passed to EnumObjects is a FAR pointer to a function exported with __export and with the Pascal calling convention. In protect-mode applications, you do not have to create this function with the Windows MakeProcInstance function or free the function after use with FreeProcInstance. ������3 4�s�2����������You also do not have to export the function name in an EXPORTS statement in your application's module-definition file. You can instead use  the __export function modifier, as in n;�m�3 6�v�pȘR��������int FAR PASCAL __export AFunction( LPSTR, LPSTR ); !����9 @���������������to cause the compiler to emit the proper export record for export by name without aliasinm��C�g. This works for most needs. For some special cases, such as exporting a function by ordinal or aliasing the export, you still need to use an EXPORTS statement in a module-definition file. For compiling Foundation programs, you'll normally use the /GA and /GEs compiler options. The /Gw compiler option is not used with the Foundation classes. (If you do use MakeProcInstance, you will need to explicitly cast the returned function pointer from FARPROC to the type needed in this API.) Callback registration interfaces are now type-safe (you must pass in a function pointer that points to the right kind of function for the specific callback). -m��, &���������Also note that all callback functions must trap Foundation exceptions before returning to Windows, since exceptions cannot be thrown across callback boundaries. For more information about exceptions, see Chapter 12 in the Class Libraries User's Guide. >�) "�*�2�������Callback Function�t��2 4���2����������The callback function passed to EnumObjects must use the Pascal calling convention and must be declared FAR. �WHF \���pȘR���������������int FAR PASCAL __export ObjectFunc( LPSTR lpLogObject, LPSTR* lpData ); ���, &�I��������The ObjectFunc name is a placeholder for the application-supplied function name. The actual name must be exported as described in the "Remarks" section above. KHc2 4�2�R�A��~Q�A�����ParameterDescription*��J b���R�A��~�A���������������lpLogObjectPoints to a LOGPEN or LOGBRUSH data structure that contains information about the logical attributes of the object. lpDataPoints to the application-supplied data passed to the EnumObjects function. 9c�) "� �2�������Return Value����: B�U�2�������������The callback function returns an int. The value of this return is user-defined. If the callback function returns 0, EnumObjects stops enumeration early. Returns�\�,	& ���2������Specifies the last value returned by the callback function. Its meaning is user-defined. 5�a	) "��2�������See Alsou?,	�	6 <�~�2������������::FreeProcInstance, ::MakeProcInstance, ::EnumObjects �Ta	[
1!
��������_[
�
�CCDC::EscapeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")8�	�
) "��2�������CDC::Escape�S[
*D X���r�=���~������������int Escape( int nEscape, int nCount, LPSTR lpInData, LPSTR lpOutData );)�
S& ��2������K*�2 4�2�R�=��~Q�=�����ParameterDescription�[SS
Z ����R�=��~�=�����������������������nEscapeSpecifies the escape function to be performed. nCountSpecifies the number of bytes of data pointed to by lpInData. lpInDataPoints to the input data structure required for this escape. lpOutDataPoints to the structure that is to receive output from this escape. The lpOutData parameter is NULL if no data is returned. 4��
) "��2�������Remarks�S
�/ ,���2����������Allows applications to access facilities of a particular device that are not directly available through GDI. Escape calls made by an application are translated and sent to the device driver. The nEscape parameter specifies the escape function to be performed. For possible values, see the topic on printer escapes in the Windows Software Development Kit documentation. The Microsoft Foundation Class Library provides member functions for some of the most common escape functions. 4�
�) "��2�������Returns&��A- (���2��������P�A�	ositive if the function is successful, except for the QUERYESCSUPPORT escape, which only checks for implementation. Or 0 if the escape is not implemented. Or a negative value if there is an error. The following list shows common error values: C�FA2 4�"�R��~Q������ValueMeaningZA�BH ^�%�R��~������������������SP_ERRORGeneral error. SP_OUTOFDISKNot enough disk space is currently available for spooling, and no more space will become available. SP_OUTOFMEMORYNot enough memory is available for spooling. SP_USERABORTUser terminated the job through the Print Manager. 4FA�B(  ��������See Also���B�Cr �������=�����orw����x������ۀ���������S�N��������CDC::StartDoc, CDC::StartPage, CDC::EndPage, CDC::SetAbortProc, CDC::AbortDoc, CDC::EndDoc, ::Escape �]�BVD1.��������`VD�D�JCDC::ExcludeClipRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")@�C�D(  �0�������CDC::ExcludeClipRect�lVDSEQ r���r�=���~�����������������int ExcludeClipRect( int x1, int y1, int x2, int y2 );int ExcludeClipRect( LPRECT lpRect );)�D|E& ��2������KSE�E2 4�2�R�=��~Q�=�����ParameterDescription�v|E�GP n���R�=��~�=���������������������x1Specifies the logical x-coordinate of the upper-left corner of the rectangle. y1Specifies the logical y-coordinate of the upper-left corner of the rectangle. x2Specifies the logical x-coordinate of the lower-right corner of the rectangle. y2Specifies the logical y-coordinate of the lower-right corner of the rectangle. lpRectSpecifies the rectangle. 4�E�G) "��2�������Remarks�x�GfH- *���2���������Creates a new clipping region that consists of the existing clipping region minus the specified rectangle. Returns~X�G�H& ���2������Specifies the new clipping region's type. It can be any one of the following values: CfH'I2 4�"�R��~Q������ValueMeaning���HJH ^�a�R��~������������������COMPLEXREGIONThe region has overlapping borders. ERRORNo region was created. NULLREGIONThe region is empty. SIMPLEREGIONThe region has no overlapping borders. 4'ISJ(  ��������See Also@J�J) "�.��������::ExcludeClipRect �^SJ"K1���������a"KcK�CDC::ExcludeUpdateRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")A�JcK(  �2�������CDC::ExcludeUpdateRgn[)"K�K2 4�R�r�=���~������int ExcludeUpdateRgn( CWnd* pWnd );)cK�K& ��2������K�K2L2 4�2�R�=��~Q�=�����ParameterDescriptionsD�K�L/ .���R�=��~�=�����pWndPoints to the window object whose window is being updated. 42L�L) "��2�������Remarks���L�M: B�S�2����㪌��������Prevents drawing within invalid areas of a window by excluding an updated region in the window from the clipping region associated with the CDC object. ReturnsqK�L-N& ���2������The type of excluded region. It can be any one of the following values: C�MpN2 4�"�R��~Q������ValueMeaning��-NhOH ^�a�R��~������������������COMPLEXREGIONThe region has overlapping borders. ERRORNo region was created. NULLREGIONThe region is empty. SIMPLEREGIONThe region has no overlapping borders. 4pN�O(  ��������See AlsoAhO�) "�0��������::ExcludeUpdateRgn �O��J�Z�O��1���������b��Ԁ7�CDC::ExtFloodFillEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")=�Ԁ(  �*�������CDC::ExtFloodFill�M��e�D X���r�=���~������������BOOL ExtFloodFill( int x, int y, DWORD crColor, UINT nFillType );)Ԁ��& ��2������Ke�ف2 4�2�R�=��~�=�����ParameterDescription������T v��R�=��~�=���������������������xSpecifies the logical x-coordinate of the point where filling begins. ySpecifies the logical y-coordinate of the point where filling begins. crColorSpecifies the color of the boundary or of the area to be filled. The interpretation of crColor depends on the value of nFillType. nFillTypeSpecifies the type of flood fill to be performed. It must be one of the following values: Cف��2 4�"�R�y��}Q�y�����ValueMeaning�}��̅P n���R�y��}�y�������*HQ�����������FLOODFILLBORDERThe fill area is bounded by the color specified by crColor. This style is identical to the filling performed by FloodFill. FLOODFILLSURFACEThe fill area is defined by the color specified by crColor. Filling continues outward in all directions as long as the color is encountered. This style is useful for filling areas with multicolored boundaries. 4���) "��2�������Remarks�u̅�w ����2������*HQ�����������������������������Fills an area of the display surface with the current brush. However, this member function provides more flexibility than FloodFill. You can specify a fill type in nFillType. If nFillType is set to FLOODFILLBORDER, the area is assumed to be completely bounded by the color specified by crColor. The function begins at the point specified by x and y and fills in all directions to the color boundary. If nFillType is set to FLOODFILLSURFACE, the function begins at the point specified by x and y and continues in all directions, filling all adjacent areas containing the color specified by crColor. ����@ N�k�2�������k<���������Only memory-device contexts and devices that support raster-display technology support ExtFloodFill#. For more information see the GetDeviceCaps member function. Returns�W���H ^���2�����������������TRUE if the function is successful. FALSE if the filling could not be completed, if the given point has the boundary color specified by crColor (if FLOODFILLBORDER was requested), if the given point does not have the color specified by crColor (if FLOODFILLSURFACE was requested), or if the point is outside the clipping region. 5���) "��2�������See Also�@��7�B T���2�����*HQ����k<���������CDC::FloodFill, CDC::GetDeviceCaps, ::ExtFloodFill �X����1��������c������CDC::ExtTextOutEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")<7���) "�&�2�������CDC::ExtTextOut����܍W |��r�=���~������������������BOOL ExtTextOut( int x, int y, UINT nOptions, LPRECT lpRect, const char FAR* lpString, UINT nCount, LPINT lpDxWidths );)���& ��2������K܍P�2 4�2�R�=��~�=�����ParameterDescription�N�ޏ@ N���R�=��~�=�������������xSpecifies the logical x-coordinate of the character cell for the first character in the specified string. ySpecifies the logical y-coordinate of the character cell for the first character in the specified string. nOptionsSpecifies the rectangle type. This parameter can be one, both, or neither of the following values: CP�-�2 4�"�R�قgޏ-�7�~
�������ValueMeaning��ޏ��8 >�!�R�قg~�����������ETO_CLIPPEDSpecifies that text is clipped to the rectangle. ETO_OPAQUESpecifies that the current background color fills the rectangle. �j-���� ���R�=��~�=������������	��������x�
1�����������������������lpRectPoints to a RECT structure that determines the dimensions of the rectangle. This parameter can be NULL. You can also pass a CRect object for this parameter. lpStringPoints to the specified character string. You can also pass a CString object for this parameter. nCountSpecifies the number of characters in the string. lpDxWidthsPoints to an array of values that indicate the distance between origins of adjacent character cells. For instance, lpDxWidths[i] logical units will separate the origins of character cell i and character cell i + 1. This parameter can be NULL. 4��#�) "��2�������RemarksE���h�v ����2�������������㪌���� ɟ���������������Writes a character string within a rectangular region, using the currently selected font. The rectangular region can be opaque (filled with the current background color) and it can be a clipping region. If nOptions is 0 and lpRect is NULL, the function writes text to the device context without using a rectangular region. By default, the current position is not used or updated by the function. If an application needs to update the current position when it calls ExtTextOut, the application can call the CDC member function SetTextAlign with nFlags set to TA_UPDATECP. When this flag is set, Windows ignores x and y on subsequent calls to ExtTextOut, using the current position instead. 4#���) "��2�������Returnsj;h��/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5��;�) "��2�������See Also�S���N l���2���� ɟ���ヮӀ���%���������CDC::SetTextAlign, CDC::TabbedTextOut, CDC::TextOut, ::ExtTextOut �V;�c�1���������dc���^�CDC::FillRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):����) "�"�2�������CDC::FillRecto7c��8 @�n�r�=���~��������void FillRect( LPRECT lpRect, CBrush* pBrush );)��5�& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescription:�5���V z���R�=��~�=����������	�����������lpRectPoints to a RECT or CRect that contains the logical coordinates of the rectangle to be filled. You can also pass a CRect object for this parameter. pBrushIdentifies the brush used to fill the rectangle. 4����) "��2�������Remarks������d ���2���������������������������Fills a given rectangle by using the specified brush. The function fills the complete rectangle, including the left and top borders, but does not fill the right and bottom borders. When filling the specified rectangle, FillRect does not include the rectangle's right and bottom sides. GDI fills a rectangle up to, but does not include, the right column and bottom row, regardless of the current mapping mode. FillRect compares the values of the top, bottom, left, and right members of the specified rectangle. If bottom is less than or equal to top, or if right is less than or equal to left, the rectangle is not drawn. 5���) "��2�������See AlsoR��^�6 <�8�2�����Q���������CBrush, ::FillRect �U�
1���������e
E

CDC::FillRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")^�
^�9^�E
) "� �2�������CDC::FillRgnk3
�
8 @�f�r�=���~��������BOOL FillRgn( CRgn* pRgn, CBrush* pBrush );)E
�
& ��2������K�
$
2 4�2�R�=��~Q�=�����ParameterDescription���

8 >�_�R�=��~�=���������pRgnIdentifies the region to be filled. The coordinates for the given region are specified in device units. pBrushIdentifies the brush to be used to fill the region. 4$
?
) "��2�������Remarks�X
�
9 B���2�������������Fills the region specified by pRgn with the brush specified by pBrush. ReturnsuF?
E
/ .���2���������TRUE if the function is successful or FALSE if an error occurs. 5�
z
) "��2�������See Also�8E

N l�p�2����v�������/�����Q���������CRgn, CDC::PaintRgn, CBrush, ::FillRgn �Wz
�
1���������f�
�
U
CDC::FloodFillEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')");
�
) "�$�2�������CDC::FloodFillv8�
9
> L�p�r�=���~����������BOOL FloodFill( int x, int y, DWORD crColor );)�
b
& ��2������K9
�
2 4�2�R�=��~�=�����ParameterDescription�b
�
@ N���R�=��~�=�������������xSpecifies the logical x-coordinate of the point where filling begins. ySpecifies the logical y-coordinate of the point where filling begins. crColorSpecifies the color of the boundary. 4�
�
) "��2�������Remarks$��
	
X ~���2������������������k<������Fills an area of the display surface with the current brush. The area is assumed to be bounded as specified by crColor. The FloodFill function begins at the point specified by x and y and continues in all directions to the color boundary. Only memory-device contexts and devices that support raster-display technology support the FloodFill member function. For information about RC_BITBLT capability, see the GetDeviceCaps member function. �`�
�	
9 B���2�������������The ExtFloodFill function provides similar capability but greater flexibility. Returns��	
�

6 :���2�����������TRUE if the function is successful. FALSE if the filling could not be completed, the given point has the boundary color specified by crColor, or the point is outside the clipping region. 5�	
�

) "��2�������See Also�@�

U
B T���2��������k<���������CDC::ExtFloodFill, CDC::GetDeviceCaps, ::FloodFill �W�

�
1���������g�

�@
CDC::FrameRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')");U

) "�$�2�������CDC::FrameRectp8�
�
8 @�p�r�=���~��������void FrameRect( LPRECT lpRect, CBrush* pBrush );)
�
& ��2������K�
�
2 4�2�R�=��~Q�=�����ParameterDescriptiona�
]
V z��R�=��~�=����������	�����������lpRectPoints to a RECT or CRect that contains the logical coordinates of the upper-left and lower-right corners of the rectangle. You can also pass a CRect object for this parameter. pBrushIdentifies the brush to be used for framing the rectangle. 4�
�
) "��2�������Remarks�Q]
;@
M h���2��������������������Draws a border around the rectangle specified by lpRect. The function uses the given brush to draw the border. The width and height of the border is always one logical unit. If the rectangle's bottom coordinate is less than or equal to top, or if right is less than or equal to l�
;@
U
eft, the rectangle is not drawn. See AlsoS�
�@
6 <�:�2�����Q���������CBrush, ::FrameRect �V;@
A
1���������hA
OA
�F
CDC::FrameRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):�@
OA
) "�"�2�������CDC::FrameRgn�QA
�A
D X���r�=���~������������BOOL FrameRgn( CRgn* pRgn, CBrush* pBrush, int nWidth, int nHeight );)OA

B
& ��2������K�A
XB
2 4�2�R�=��~Q�=�����ParameterDescription��
B
ID
T v�;�R�=��~�=���������������������pRgnPoints to the CRgn object that identifies the region to be enclosed in a border. The coordinates for the given region are specified in device units. pBrushPoints to the CBrush object that identifies the brush to be used to draw the border. nWidthSpecifies the width in vertical brush strokes (in logical units). nHeightSpecifies the height in horizontal brush strokes (in logical units). 4XB
}D
) "��2�������Remarks@�ID
�E
F Z���2�����������������Draws a border around the region specified by pRgn, using the brush specified by pBrush. The nWidth parameter specifies the width of the border in vertical brush strokes; nHeight specifies the height in horizontal brush strokes. Returnsj;}D
'F
/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5�E
\F
) "��2�������See Alsoh&'F
�F
B T�L�2�������Q�����v������::FrameRgn, CBrush, CRgn �b\F
WG
1&��������iWG
�G
�K
CDC::GetAspectRatioFilterEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")F�F
�G
) "�:�2�������CDC::GetAspectRatioFilterS'WG
�G
, (�N�r�=���~����CSize GetAspectRatioFilter() const;)�G
H
& ��2������4�G
MH
) "��2�������Remarks�H
TJ
: B���2�����J�G��������Retrieves the setting for the current aspect-ratio filter. The aspect ratio is the ratio formed by a device's pixel width and height. Information about a device's aspect ratio is used in the creation, selection, and display of fonts. Windows provides a special filter, the aspect-ratio filter, to select fonts designed for a particular aspect ratio from all of the available fonts. The filter uses the aspect ratio specified by SetMapperFlags. Returns�[MH
�J
, (���2��������A CSize object representing the aspect ratio used by the current aspect-ratio filter. 5TJ
K
) "��2�������See Also�@�J
�K
B T���2����J�G�������\
������CDC::SetMapperFlags, ::GetAspectRatioFilter, CSize �XK
L
1z��������jL
WL
�O
CDC::GetBkColorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")<�K
WL
) "�&�2�������CDC::GetBkColorIL
�L
, (�:�r�=���~����DWORD GetBkColor() const;)WL
�L
& ��2������4�L
�L
) "��2�������Remarks�`�L
�N
4 6���2�����������Returns the current background color. If the background mode is OPAQUE, the system uses the background color to fill the gaps in styled lines, the gaps between hatched lines in brushes, and the background in character cells. The system also uses the background color when converting bitmaps between color and monochrome device contexts. Returns=�L
�N
& �.�2������An RGB color value. 5�N
O
) "��2�������See Also�O�N
�O
N l���2����5�����������ƃ��������CDC::GetBkMode, CDC::SetBkColor, CDC::SetBkMode, ::GetBkColor �WO
4�
19��������k4�
o�
w�
CDC::GetBkModeEnableButton("up");ChangeButtonB�O
4�
�O
inding("up", "JI(`mfc10wh.hlp', `CDC')");�O
o�
) "�$�2�������CDC::GetBkModeF4�
��
, (�4�r�=���~����int GetBkMode() const;)o�
ހ
& ��2������4��
�
) "��2�������Remarks�ހ
$�
. *���2���������Returns the background mode. The background mode defines whether the system removes existing background colors on the drawing surface before drawing text, hatched brushes, or any pen style that is not a solid line. Returns�O�
��
2 4���2����������Specifies the current background mode. It can be OPAQUE or TRANSPARENT. 5$�
ڂ
) "��2�������See Also�O��
w�
N l���2����b�ᎀ���������ƃ��������CDC::GetBkColor, CDC::SetBkColor, CDC::SetBkMode, ::GetBkMode �Yڂ
�
1J��������l�
>�
W�
CDC::GetBrushOrgEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")=w�
>�
) "�(�2�������CDC::GetBrushOrgK�
��
, (�>�r�=���~����CPoint GetBrushOrg() const;)>�
��
& ��2������4��
�
) "��2�������Remarks'���

�
/ ,���2����������Retrieves the origin of the brush currently selected for the device context. The initial brush origin is at (0,0) of the client area. The return value specifies this point in device units relative to the origin of the desktop window. Returns�W�
��
2 4���2������'������Specifies the current origin of the brush (in device units) as a CPoint object. 5
�
ˆ
) "��2�������See Also�J��
W�
B T���2����6o/�����X��~��������CDC::SetBrushOrg, CGdiObject::UnrealizeObject, ::GetBrushOrg �Zˆ
�
1���������m�
 �
��
CDC::GetCharWidthEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>W�
 �
) "�*�2�������CDC::GetCharWidth�U�
��
> L���r�=���~����������BOOL GetCharWidth( UINT nFirstChar, UINT nLastChar, LPINT lpBuffer ) const;) �
܈
& ��2������K��
'�
2 4�2�R�=��~Q�=�����ParameterDescription�H܈
��
@ N���R�=��~�=�������������nFirstCharSpecifies the first character in a consecutive group of characters in the current font. nLastCharSpecifies the last character in a consecutive group of characters in the current font. lpBufferPoints to a buffer that will receive the width values for a consecutive group of characters in the current font. 4'�
�
) "��2�������Remarks+���
�
: B���2�������������Retrieves the widths of individual characters in a consecutive group of characters from the current font. For example, if nFirstChar identifies the letter 'a' and nLastChar identifies the letter 'z', the function retrieves the widths of all lowercase characters. The function stores the values in the buffer pointed to by lpBuffer. This buffer must be large enough to hold all of the widths. For example, there must be at least 26 entries in the example given in the previous paragraph. ���
�
. *�M�2���������If a character in the consecutive group of characters does not exist in a particular font, it will be assigned the width value of the default character. Returnsj;�
L�
/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5�
��
) "��2�������See Also>L�
��
* $�(�2��������::GetCharWidth �X��
H�
1���������nH�
��
i�
CDC::GetClipBoxEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")<��
��
) "�&�2�������CDC::GetClipBox^,H�
�
2 4�X�r�=���~������int GetClipBox( LPRECT lpRect ) const;��
�
��
)��
5�
& ��2������K�
��
2 4�2�R�=��~Q�=�����ParameterDescription�\5�
#�
G ^���R�=��~�=����������	�����lpRectPoints to the RECT or CRect that is to receive the rectangle dimensions. 4��
W�
) "��2�������Remarks��#�
:�
4 6�_�2�����������Retrieves the dimensions of the tightest bounding rectangle around the current clipping boundary. The dimensions are copied to the buffer pointed to by lpRect. ReturnspJW�
��
& ���2������The clipping region's type. It can be any one of the following values: C:�
��
2 4�"�R��~Q������ValueMeaning
���
��
H ^���R��~������������������COMPLEXREGIONClipping region has overlapping borders. ERRORDevice context is not valid. NULLREGIONClipping region is empty. SIMPLEREGIONClipping region has no overlapping borders. 4��
.�
(  ��������See Also;��
i�
) "�$��������::GetClipBox �`.�
��
1[��������o��
=�
g�
CDC::GetCurrentPositionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")Ci�
=�
(  �6�������CDC::GetCurrentPositionR&��
��
, (�L�r�=���~����CPoint GetCurrentPosition() const;)=�
��
& ��2������4��
��
) "��2�������RemarkssF��
_�
- *���2���������Retrieves the current position (in logical coordinates). ReturnsZ.��
��
, (�\�2��������The current position as a CPoint object. 5_�
��
) "��2�������See Alsoy7��
g�
B T�n�2����N�x������'���������CDC::MoveTo, CPoint, ::GetCurrentPosition �V��
��
1G��������p��
(�
>�
CDC::GetDCOrgEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):g�
(�
) "�"�2�������CDC::GetDCOrgH��
p�
, (�8�r�=���~����CPoint GetDCOrg() const;)(�
��
& ��2������4p�
��
) "��2�������RemarkspB��
=�
. *���2���������Obtains the final translation origin for the device context. The final translation origin specifies the offset used by Windows to translate device coordinates into client coordinates for points in an application's window. The final translation origin is relative to the physical origin of the screen display. ReturnszN��
��
, (���2��������The final translation origin (in device coordinates) as a CPoint object. 5=�
��
) "��2�������See AlsoR��
>�
6 <�8�2�����'���������CPoint, ::GetDCOrg �[��
��
1���������q��
	�
�GCDC::GetDeviceCapsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")?>�
	�
) "�,�2�������CDC::GetDeviceCaps^,��
g�
2 4�X�r�=���~������int GetDeviceCaps( int nIndex ) const;)	�
��
& ��2������Kg�
��
2 4�2�R�=��~Q�=�����ParameterDescription�T��
^�
/ .���R�=��~�=�����nIndexSpecifies the item to return. It can be any one of the following values: ����
 �
8 >��R�5�~�5���������DRIVERVERSIONVersion number; for example, 0x100 for 1.0. TECHNOLOGYDevice technology. It can be any one of the following values: B^�
b�
1 2�"�P)�~Q�)�����ValueMeaning2� �
��
` ����R�)�~�)�����������������������������DT_PLOTTERVector plotter DT_RASDISPLAYRaster display DT_RASPRINTERRaster printer DT_RASCAMERARaster camera DT_CHARSTREAMCharacter stream DT_METAFILEMetafile DT_DISPFILEDisplay file 3�b�
�h ����R�5�~�5���������������������������������HOR��
�>�
ZSIZEWidth of the physical display (in millimeters). VERTSIZEHeight of the physical display (in millimeters). HORZRESWidth of the display (in pixels). VERTRESHeight of the display (in raster lines). LOGPIXELSXNumber of pixels per logical inch along the display width. LOGPIXELSYNumber of pixels per logical inch along the display height. BITSPIXELNumber of adjacent color bits for each pixel. PLANESNumber of color planes. H���
n ����R�5�~�5�����������������������������������NUMBRUSHESNumber of device-specific brushes. NUMPENSNumber of device-specific pens. NUMFONTSNumber of device-specific fonts. NUMCOLORSNumber of entries in the device's color table. ASPECTXRelative width of a device pixel as used for line drawing. ASPECTYRelative height of a device pixel as used for line drawing. ASPECTXYDiagonal width of the device pixel as used for line drawing. PDEVICESIZESize of the PDEVICE internal data structure. �B��X ~���R�5�~�5���������������������CLIPCAPSFlag that indicates the clipping capabilities of the device. It is 1 if the device can clip to a rectangle, 0 if it cannot. SIZEPALETTENumber of entries in the system palette. This index is valid only if the device driver sets the RC_PALETTE bit in the RASTERCAPS index. It is available only if the driver version is 3.0 or higher. NUMRESERVEDNumber of reserved entries in the system palette. This index is valid only if the device driver sets the RC_PALETTE bit in the RASTERCAPS index and is available only if the driver version is 3.0 or higher. �PID V���R�5�~�5�������������COLORRESActual color resolution of the device in bits per pixel. This index is valid only if the device driver sets the RC_PALETTE bit in the RASTERCAPS index and is available only if the driver version is 3.0 or higher. RASTERCAPSValue that indicates the raster capabilities of the device, as shown in the following list: G��1 2�,�P�~Q������CapabilityMeaning/�I�
z €k�R��~����������������������������������������RC_BANDINGRequires banding support RC_BITBLTCapable of transferring bitmaps RC_BITMAP64Capable of supporting bitmaps larger than 64K RC_DI_BITMAPCapable of supporting SetDIBits and GetDIBits RC_DIBTODEVCapable of supporting the SetDIBitsToDevice function RC_FLOODFILLCapable of performing flood fills RC_GDI20_OUTPUTCapable of supporting Windows version 2.0 features RC_PALETTEPalette-based device ����R r�S�R��~���������__Zπ����������RC_SCALINGCapable of scaling RC_STRETCHBLTCapable of performing the StretchBlt function RC_STRETCHDIBCapable of performing the StretchDIBits function �s�
\/ .���R�5�~�5�����CURVECAPSA bitmask that indicates the curve capabilities of the device. The bits have the following meanings: ?��0 0��P��
�������BitMeaning2�\�
: B���R���
��������������������0Device can do circles 1Device can do pie wedges 2Device can do chord arcs 3Device can do ellipses 4Device can do wide borders 5Device can do styled borders 6Device can do borders that are wide and styled 7Device can do interiors ����5 8��R�5�~�5��������The high byte is 0. LINECAPSA bitmask that indicates the line capabilities of the device. The bits have the following meanings: ?�
�0 0��P��
�������BitMeaning����: B���R���
��������������������0Reserved 1Device can do polyline 2Reserved 3Reserved 4Device can do wide lines 5Device can do styled lines 6Device can do lines that are wide and styled 7Device can do interiors ����@5 8�%�R�5�~�5��������T��@>�
he high byte is 0. POLYGONALCAPSA bitmask that indicates the polygonal capabilities of the device. The bits have the following meanings: ?��@0 0��P��
�������BitMeaningQ�@+B: B�/�R���
��������������������0Device can do alternate fill polygon 1Device can do rectangle 2Device can do winding number fill polygon 3Device can do scanline 4Device can do wide borders 5Device can do styled borders 6Device can do borders that are wide and styled 7Device can do interiors ���@�B5 8��R�5�~�5��������The high byte is 0. TEXTCAPSA bitmask that indicates the text capabilities of the device. The bits have the following meanings: ?+B'C0 0��P��
�������BitMeaning��BBE@ N���R���
��������������������������0Device can do character output precision 1Device can do stroke output precision 2Device can do stroke clip precision 3Device can do 90-degree character rotation 4Device can do any character rotation 5Device can do scaling independent of x and y 6Device can do doubled character for scaling 7Device can do integer multiples for scaling 8Device can do any multiples for exact scaling 9Device can do double-weight characters 10Device can do italicizing ��'CF4 6�9�R���
��������������11Device can do underlining 12Device can do strikeouts 13Device can do raster fonts 14Device can do vector fonts 15Reserved; must be returned 0 4BEFF) "��2�������Remarks��F
G4 6�'�2�����������Retrieves device-specific information about a given display device. The nIndex parameter specifies the type of information desired. ReturnsH"FFUG& �D�2������The value of the desired item. 5
G�G) "��2�������See Also?UG�G* $�*�2��������::GetDeviceCaps �X�GRH1I��������rRH�H�JCDC::GetMapModeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")<�G�H) "�&�2�������CDC::GetMapModeGRH�H, (�6�r�=���~����int GetMapMode() const;)�H�H& ��2������4�H2I) "��2�������Remarks�m�H�I: D���2������׸��������Retrieves the current mapping mode. See SetMapMode for a description of the mapping modes. Returns;2IJ& �*�2������The mapping mode. 5�IIJ) "��2�������See Also]'J�J6 <�N�2����׸��������CDC::SetMapMode, ::GetMapMode �]IJ4K1K��������s4KuK�NCDC::GetNearestColorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")A�JuK) "�0�2�������CDC::GetNearestColore34K�K2 4�f�r�=���~������DWORD GetNearestColor( DWORD crColor ) const;)uKL& ��2������K�KNL2 4�2�R�=��~Q�=�����ParameterDescription^/L�L/ .�^�R�=��~�=�����crColorSpecifies the color to be matched. 4NL�L) "��2�������Remarks�q�L~M- *���2���������Returns the closest logical color to a specified logical color that the given device can represent. Returns�o�LN, (���2��������An RGB color value that names the solid color closest to the crColor value that the device can represent. 5~MNN) "��2�������See AlsoAN�N* $�.�2��������::GetNearestColor �VNNO1���������tOPO��CDC::GetPixelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):�NPO) "�"�2�������CDC::GetPixel�VO�E Z���r�=���~�������������DWORD GetPixel( int x, int y ) const;DWORD GetPixel( POINT point ) const;PO��N)PO5�& ��2������K���2 4�2�R�=��~�=�����ParameterDescription�5���@ N���R�=��~�=�������������xSpecifies the logical x-coordinate of the point to be examined. ySpecifies the logical y-coordinate of the point to be examined. pointSpecifies the logical x- and y-coordinates of the point to be examined. 4��Ё) "��2�������Remarksx
��H�k ���2��������������k<����������T�����'������Retrieves the RGB color value of the pixel at the point specified by x and y. The point must be in the clipping region. If the point is not in the clipping region, the function has no effect and returns -1. Not all devices support the GetPixel function. For more information, see the RC_BITBLT raster capability under the GetDeviceCaps member function. The GetPixel member function has two forms. The first takes two coordinate values; the second takes either a POINT structure or a CPoint object. 4Ё|�) "��2�������Returns��H�J�' �O�2������For either version of the function, an RGB color value for the color of the given point. It is -1 if the coordinates do not specify a point in the clipping region. 5|��) "��2�������See Also};J���B T�v�2����k<������P��������CDC::GetDeviceCaps, CDC::SetPixel, ::GetPixel �]���1+��������u��ˆňCDC::GetPolyFillModeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")A��ˆ) "�0�2�������CDC::GetPolyFillModeL ���, (�@�r�=���~����int GetPolyFillMode() const;)ˆ@�& ��2������4�t�) "��2�������Remarks��@�^�; D�_�2������N�@���������Retrieves the current polygon-filling mode. See the SetPolyFillMode member function later in this reference for a description of the polygon filling modes. See Alsog1t�ň6 <�b�2����N�@���������CDC::SetPolyFillMode, ::GetPolyFillMode �U^�K�1���������vK���G�CDC::GetROP2EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")9ň��) "� �2�������CDC::GetROP2DK�ȉ, (�0�r�=���~����int GetROP2() const;)���& ��2������4ȉ%�) "��2�������Remarks����. *���2���������Retrieves the current drawing mode. The drawing mode specifies how the colors of the pen and the interior of filled objects are combined with the color already on the display surface. ReturnsM%���2 4���2�����g�m�����The drawing mode. For a list of the drawing mode values, see SetROP2. 5�̋) "��2�������See Also{9��G�B T�r�2����k<�����g�m��������CDC::GetDeviceCaps, CDC::SetROP2, ::GetROP2 �_̋׌1��������w׌��CDC::GetStretchBltModeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")CG��) "�4�2�������CDC::GetStretchBltModeN"׌h�, (�D�r�=���~����int GetStretchBltMode() const;)���& ��2������4h�ō) "��2�������Remarks������N j�	�2�����__Zπ���������������Retrieves the current bitmap-stretching mode. The bitmap-stretching mode defines how information is removed from bitmaps that are stretched or compressed by using StretchBlt. The BLACKONWHITE and WHITEONBLACK modes are typically used to preserve foreground pixels in monochrome bitmaps. The COLORONCOLOR mode is typically used to preserve color in color bitmaps. Returns�dō?�8 @���2������������The current bitmap-stretching mode. It can be W��?�G�HITEONBLACK, BLACKONWHITE, or COLORONCOLOR. 5��t�) "��2�������See Also�J?��B T���2����__Zπ���@A�B��������CDC::StretchBlt, CDC::SetStretchBltMode, ::GetStretchBltMode �at���1���������x������CDC::GetTabbedTextExtentEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")E���) "�8�2�������CDC::GetTabbedTextExtent������E X��r�=���~������������CSize GetTabbedTextExtent( const char FAR* lpString, int nCount, int nTabPositions, LPINT lpnTabStopPositions ) const;)����& ��2������K���2 4�2�R��9~Q�������ParameterDescription���,�Z ����R��9~������x�
1�������������������lpStringPoints to a character string. You can also pass a CString object for this parameter. nCountSpecifies the number of characters in the string. nTabPositionsSpecifies the number of tab-stop positions in the array pointed to by lpnTabStopPositions. lpnTabStopPositionsPoints to an array of integers containing the tab-stop positions in pixels. The tab stops must be sorted in increasing order; back tabs are not allowed. 4�`�) "��2�������Remarks�,�s�. *���2���������Computes the width and height of a character string. If the string contains one or more tab characters, the width of the string is based upon the tab stops specified by lpnTabStopPositions. The function uses the currently selected font to compute the dimensions of the string. Since some devices do not place characters in regular cell arrays (that is, they kern the characters), the sum of the extents of the characters in a string may not be equal to the extent of the string. �`���Z ��m�2�������������������������If nTabPositions is 0 and lpnTabStopPositions is NULL, tabs are expanded to eight average character widths. If nTabPositions is 1, the tab stops will be separated by the distance specified by the first value in the array to which lpnTabStopPositions points. If lpnTabStopPositions points to more than a single value, a tab stop is set for each value in the array, up to the number specified by nTabPositions. ReturnsZ4s���& �h�2������The dimensions of the string (in logical units). 5���) "��2�������See Also�K����B T���2�����|>���ヮӀ�������CDC::GetTextExtent, CDC::TabbedTextOut, ::GetTabbedTextExtent �Z�*�1e
��������y*�h��CDC::GetTextAlignEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>��h�) "�*�2�������CDC::GetTextAlignJ*���, (�<�r�=���~����UINT GetTextAlign() const;)h���& ��2������4���) "��2�������Remarks�t����@ N���2������%�������������Retrieves the status of the text-alignment flags for the device context. The text-alignment flags determine how TextOut and ExtTextOut align a string of text in relation to the string's starting point. The text-alignment flags are not necessarily single-bit flags and may be equal to 0. To test whether a flag is set, an application should follow these steps: �|�h�) "���R��2�h����1Apply the bitwise OR operator to the flag and its related flags. The following list shows the groups of related flags: q,����E Z�Z�R���2����"����������TA_LEFT, TA_CENTER, and TA_RIGHT s.h�L�E Z�^�R���2����"����������TA_BASELINE, TA_BOTTOM, and TA_TOP f'����? N�P�R���2����"��������TA_NOUPDATECP and TA_UPDATECP qHL�/) "���R��2�h����2Apply the bitwise AND operator to ��/��the result and the return value. a8���) "�p�R��2�h����3Test for the equality of this result and the flag. 3/�(  ��������Returns�d�L% ��������The status of the text-alignment flags. The return value is one or more of the following values: C��2 4�"�R�
�~Q�
�����ValueMeaning�L�P n���R�
�~�
���������������������TA_BASELINESpecifies alignment of the x-axis and the baseline of the chosen font within the bounding rectangle. TA_BOTTOMSpecifies alignment of the x-axis and the bottom of the bounding rectangle. TA_CENTERSpecifies alignment of the y-axis and the center of the bounding rectangle. TA_LEFTSpecifies alignment of the y-axis and the left side of the bounding rectangle. TA_NOUPDATECPSpecifies that the current position is not updated. /���@ N���R�
�~�
�������������TA_RIGHTSpecifies alignment of the y-axis and the right side of the bounding rectangle. TA_TOPSpecifies alignment of the x-axis and the top of the bounding rectangle. TA_UPDATECPSpecifies that the current position is updated. 4�(  ��������See Also�R��M j������������� ɟ����%���������CDC::ExtTextOut, CDC::SetTextAlign, CDC::TextOut, ::GetTextAlign �c;1���������z;�(	CDC::GetTextCharacterExtraEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")F��(  �<�������CDC::GetTextCharacterExtraR&;�, (�L�r�=���~����int GetTextCharacterExtra() const;)��& ��2������4�0) "��2�������Remarks���-. *���2���������Retrieves the current setting for the amount of intercharacter spacing. GDI adds this spacing to each character, including break characters, when it writes a line of text to the device context. ReturnsS-0�& �Z�2������The amount of the intercharacter spacing. 5-�) "��2�������See Alsos=�(	6 <�z�2������Ȁ�������CDC::SetTextCharacterExtra, ::GetTextCharacterExtra �Z��	1>��������{�	�	�CDC::GetTextColorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>(	�	) "�*�2�������CDC::GetTextColorK�	<
, (�>�r�=���~����DWORD GetTextColor() const;)�	e
& ��2������4<
�
) "��2�������Remarks�e
�R r���2�����%�����������ヮӀ�������Retrieves the current text color. The text color is the foreground color of characters drawn by using the GDI text-output functions TextOut, ExtTextOut, and TabbedTextOut. ReturnsW1�
& �b�2������The current text color as an RGB color value. 5�<) "��2�������See Also�h�Z ����2����b�ᎀ���5�����ƃ����B���������CDC::GetBkColor, CDC::GetBkMode, CDC::SetBkMode, CDC::SetTextColor, ::GetTextColor �[<�
1���������|�
�
vBCDC::GetTextExtentEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")?��
) "�,�2�������CDC::GetTextExtent�J�
K8 @���r�=���~��������CSize GetTextExtent( const char FAR* lpString, int nCount ) const;)�
t& ��2������KK�2 4�2�R�=��~Q�=�����ParameterDescription��t�D V�M�R�=��~�=����x�
1���������lpStringPoints to a string of characters. You can also pass a CString object for this parameter. nCountSpecifies the number of characters in the string. 4��) "��2�������Remarksj;�SA/ ,�w�2�����SA�������Computes the width and height of a line of text, using the current font to determine the dimensions. Since some devices do not place characters in regular cell arrays (that is, they carry out kerning), the sum of the extents of the characters in a string may not be equal to the extent of the string. ReturnsZ4��A& �h�2������The dimensions of the string (in logical units). 5SA�A) "��2�������See Also�R�AvBB T���2����m�������]��������CDC::GetTabbedTextExtent, ::GetTextExtent, CDC::SetTextJustification �Y�AC1f��������}C=CrGCDC::GetTextFaceEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")=vB=C) "�(�2�������CDC::GetTextFace�HC�C8 @���r�=���~��������int GetTextFace( int nCount, const char FAR* lpFacename ) const;)=C�C& ��2������K�C1D2 4�2�R�I��~Q�I�����ParameterDescription��CGE8 >���R�I��~�I���������nCountSpecifies the size of the buffer (in bytes). If the typeface name is longer than the number of bytes specified by this parameter, the name is truncated. lpFacenamePoints to the buffer for the typeface name. 41D{E) "��2�������Remarks��GE+F. *��2���������Copies the typeface name of the current font into a buffer. The typeface name is copied as a null-terminated string. ReturnsoI{E�F& ���2������The number of bytes copied to the buffer. It is 0 if an error occurs. 5+F�F) "��2�������See Also�U�FrGN l���2�����U����� ɟ����%���������CDC::GetTextMetrics, CDC::SetTextAlign, CDC::TextOut, ::GetTextFace �\�F�G1���������~�G?H�KCDC::GetTextMetricsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")@rG?H) "�.�2�������CDC::GetTextMetricsl:�G�H2 4�t�r�=���~������BOOL GetTextMetrics( LPTEXTMETRIC lpMetrics ) const;)?H�H& ��2������K�HI2 4�2�R�=��~Q�=�����ParameterDescription�N�H�I5 :���R�=��~�=�������lpMetricsPoints to the TEXTMETRIC structure that receives the metrics. 4I�I) "��2�������Remarksf9�I<J- *�r�2���������Retrieves the metrics for the current font. Returnsj;�I�J/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5<J�J) "��2�������See Also�z�J�KZ ����2����,������|>����B������]����������CDC::GetTextAlign, CDC::GetTextExtent, CDC::GetTextFace, CDC::SetTextJustification, ::GetTextMetrics �\�J<L1M��������<L|L�NCDC::GetViewportExtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")@�K|L) "�.�2�������CDC::GetViewportExtM!<L�L, (�B�r�=���~����CSize GetViewportExt() const;)|L�L& ��2������4�L&M) "��2�������Remarks{N�L�M- *���2���������Retrieves the x- and y-extents of the device context's viewport. Returnsk?&MN, (�~�2��������The x- and y-extents (in device units) as a CSize object. 5�MAN) "��2�������See AlsoW!N�N6 <�B�2�����\
��������CSize, ::GetViewportExt �\AN%O1����������%OeO��CDC::GetViewportOrgEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")@�NeO) "�.�2�������CDC::GetViewportOrgN"%O�O, (�D�r�=���~����CPoint GetViewportOrg() const;)eO�O& ��2������4�O�) "��2�����O��N���Remarks�r�O��- *���2���������Retrieves the x- and y-coordinates of the origin of the viewport associated with the device context. ReturnsxL�3�, (���2��������The origin of the viewport (in device coordinates) as a CPoint object. 5��h�) "��2�������See AlsoX"3���6 <�D�2�����'���������CPoint, ::GetViewportOrg �Zh�K�1Z���������K�����CDC::GetWindowExtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>����) "�*�2�������CDC::GetWindowExtKK�Ԃ, (�>�r�=���~����CSize GetWindowExt() const;)����& ��2������4Ԃ1�) "��2�������Remarks�^����- *���2���������Retrieves the x- and y-extents of the window associated with the device context. Returnsl@1�(�, (���2��������The x- and y-extents (in logical units) as a CSize object. 5��]�) "��2�������See AlsoU(���6 <�>�2�����\
��������CSize, ::GetWindowExt �Z]�=�1y���������=�{�ÇCDC::GetWindowOrgEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>��{�) "�*�2�������CDC::GetWindowOrgL =�Dž, (�@�r�=���~����CPoint GetWindowOrg() const;){���& ��2������4Dž$�) "��2�������Remarks�p����- *���2���������Retrieves the x- and y-coordinates of the origin of the window associated with the device context. ReturnswK$�8�, (���2��������The origin of the window (in logical coordinates) as a CPoint object. 5��m�) "��2�������See AlsoV 8�Ç6 <�@�2�����'���������CPoint, ::GetWindowOrg �Xm�L�1i���������L�����CDC::GrayStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")<Ç��) "�&�2�������CDC::GrayString�L���] ��e�r�=���~��������������������BOOL GrayString( CBrush* pBrush, BOOL ( FAR PASCAL EXPORT* lpfnOutput )( HDC, DWORD, int ), DWORD lpData, int nCount, int x, int y, int nWidth, int nHeight );)����& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescription0���;�X ~���R�=��~�=��������������%��������pBrushIdentifies the brush to be used for dimming (graying). lpfnOutputSpecifies the procedure-instance address of the application-supplied callback function that will draw the string. For more information, see the description of the Windows OutputProc callback function below. If this parameter is NULL, the system uses the Windows TextOut function to draw the string, and lpData is assumed to be a long pointer to the character string to be output. .��i�b ����R�=��~�=�����������������������lpDataSpecifies a far pointer to data to be passed to the output function. If lpfnOutput is NULL, lpData must be a long pointer to the string to be output. nCountSpecifies the number of characters to be output. If this parameter is 0, GrayString calculates the length of the string (assuming that lpData is a pointer to the string). If nCount is -1 and the function pointed to by lpfnOutput returns 0, the image is shown but not dimmed. �s;�T�l ����R�=��~�=�����������������������������xSpecifies the logical x-coordinate of the starting position of the rectangle that encloses the string. ySpecifies the logical y-coordinate of the starting position of the rectangle that encloses the string. nWidthSpecifies the width (in logical units) of the rectangle that encloses the i�T�Çstring. If nWidth is 0, GrayString calculates the width of the area, assuming lpData is a pointer to the string. nHeightSpecifies the height (in logical units) of the rectangle that encloses the string. If nHeight is 0, GrayString calculates the height of the area, assuming lpData is a pointer to the string. 4i���) "��2�������Remarks�_T�9�R r���2����������������%������Draws dimmed (gray) text at the given location by writing the text in a memory bitmap, dimming the bitmap, and then copying the bitmap to the display. The function dims the text regardless of the selected brush and background. The GrayString member function uses the currently selected font. If lpFnOutput is NULL, GDI uses the Windows TextOut function, and lpData is assumed to be a far pointer to the character to be output. If the characters to be output cannot be handled by TextOut (for example, the string is stored as a bitmap), the application must supply its own output function. �����@ N�+�2���������������Also note that all callback functions must trap Foundation exceptions before returning to Windows, since exceptions cannot be thrown across callback boundaries. For more information about exceptions, see Chapter 12 in the Class Libraries User's Guide. The callback function passed to GrayString must use the Pascal calling convention, must be exported with __export, and must be declared FAR. >9�L�) "�*�2�������Callback Function�c��d ����pȘR�������������������������BOOL FAR PASCAL __export OutputFunc( HDC hDC, DWORD lpData, int nCount ); H
L�[�; D��������������OutputFunc is a placeholder for the application-supplied callback function name. The actual name must be exported as described in the "Remarks" above. The callback function (OutputFunc) must draw an image relative to the coordinates (0,0) rather than (x, y). K���2 4�2�R�=��~Q�=�����ParameterDescription][��R r��R�=��~�=�������������������hDCIdentifies a memory device context with a bitmap of at least the width and height specified by nWidth and nHeight to GrayString, respectively. lpDataPoints to the character string to be drawn. nCountSpecifies the number of characters to output. 9��<�) "� �2�������Return Value�k���- *���2���������The callback function's return value must be nonzero to indicate success. Otherwise, it is 0. Returns�<���B R���2��������%��������TRUE if the string is drawn, or FALSE if either the TextOut function or the application-supplied output function returned FALSE, or there was insufficient memory to create a memory bitmap for dimming. 5�� �) "��2�������See Also�L����H `���2������B�����%���������::GetSysColor, CDC::SetTextColor, CDC::TextOut, ::GrayString �_ �D�1���������D����CDC::IntersectClipRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")C����) "�4�2�������CDC::IntersectClipRect�pD�H�Q r���r�=���~�����������������int IntersectClipRect( int x1, int y1, int x2, int y2 );int IntersectClipRect( LPRECT lpRect );)��q�& ��2������KH���2 4�2�R�=��~Q�=�����ParameterDescription>�q�h ����R�=��~�=��������������������	�����������x1Specifies the logical x-coordinate of the upper-left corner of the rectangle. y1Specifies the logical y-coordinate of the upper-left corner of the rectangle. x2Specifies the logical x-coordinate of the lower����-right corner of the rectangle. y2Specifies the logical y-coordinate of the lower-right corner of the rectangle. lpRectSpecifies the rectangle. You can pass either a CRect object or a pointer to a RECT structure for this parameter. 4��:) "��2�������Remarks�XF Z���2�����������������Creates a new clipping region by forming the intersection of the current region and the rectangle specified by x1, y1, x2, and y2. GDI clips all subsequent output to fit within the new boundary. ReturnstN:�& ���2������The new clipping region's type. It can be any one of the following values: CX2 4�"�R��~Q������ValueMeaning��(H ^���R��~������������������COMPLEXREGIONNew clipping region has overlapping borders. ERRORDevice context is not valid. NULLREGIONNew clipping region is empty. SIMPLEREGIONNew clipping region has no overlapping borders. 4\(  ��������See AlsoY$(�5 :�H������	������::IntersectClipRect, CRect �X\>1?���������>y�	CDC::InvertRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')");�y(  �&�������CDC::InvertRectY'>�2 4�N�r�=���~������void InvertRect( LPRECT lpRect );)y�& ��2������K�F2 4�2�R�=��~Q�=�����ParameterDescription���?N j�W�R�=��~�=����������	�������lpRectPoints to a RECT or CRect that contains the logical coordinates of the rectangle to be inverted. You can also pass a CRect object for this parameter. 4Fs) "��2�������Remarks�v?	5 8���2������������Inverts the contents of the given rectangle. On monochrome displays, the function makes white pixels black, and black pixels white. On color displays, the inversion depends on how colors are generated for the display. Calling InvertRect twice with the same rectangle restores the display to its previous colors. If the rectangle is empty, nothing is drawn. See Alsoi's�	B T�N�2������	������������::InvertRect, CRect, RECT �W	
1����������
J
�
CDC::InvertRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')");�	J
) "�$�2�������CDC::InvertRgnU#
�
2 4�F�r�=���~������BOOL InvertRgn( CRgn* pRgn );)J
�
& ��2������K�
2 4�2�R�=��~Q�=�����ParameterDescription�m�
�/ .���R�=��~�=�����pRgnIdentifies the region to be inverted. The coordinates for the region are specified in device units. 4�) "��2�������Remarks(��
4 6���2�����������Inverts the colors in the region specified by pRgn. On monochrome displays, the function makes white pixels black, and black pixels white. On color displays, the inversion depends on how the colors are generated for the display. Returnsj;�u
/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5
�
) "��2�������See AlsoQu
�
6 <�6�2����v��������CRgn, ::InvertRgn �T�
�1�������������CCDC::LineToEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")8�
�) "��2�������CDC::LineTo�D�AE Z���r�=���~�������������BOOL LineTo( int x, int y );BOOL LineTo( POINT point );)�j& ��2������KA�2 4�2�R�=��~�=�����ParameterDescriptionhj)AX ~�!�R�=��~�=��������������T����)A�
��'������xSpecifies the logical x-coordinate of the endpoint for the line. ySpecifies the logical y-coordinate of the endpoint for the line. pointSpecifies the endpoint for the line. You can pass either a POINT structure or a CPoint object for this parameter. 4�]A) "��2�������Remarks(�)A�BL f���2�������������������Draws a line from the current position up to, but not including, the point specified by x and y (or point). The line is drawn with the selected pen. The current position is set to x,y or to point. Returnsa2]A�B/ .�d�2���������TRUE if the line is drawn; otherwise FALSE. 5�BC) "��2�������See Also~<�B�CB T�x�2����N�x�����Zs=��������CDC::MoveTo, CDC::GetCurrentPosition, ::LineTo �TCD1����������DVD�HCDC::LPtoDPEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")8�CVD) "��2�������CDC::LPtoDP�fDEE Z���r�=���~�������������void LPtoDP( LPPOINT lpPoints, int nCount = 1 ) const;void LPtoDP( LPRECT lpRect ) const;)VD*E& ��2������KEuE2 4�2�R�=��~Q�=�����ParameterDescription�K*E0Gp ����R�=��~�=������T�����'�������������������	�����lpPointsPoints to an array of points. Each point in the array is a POINT structure or a CPoint object. nCountSpecifies the number of points in the array. lpRectPoints to a RECT structure or a CRect object. This parameter is used for the common case of mapping a rectangle from logical to device units. 4uEdG) "��2�������Remarks�0GvH. *���2���������Converts logical points into device points. The function maps the coordinates of each point from GDI's logical coordinate system into a device coordinate system. The conversion depends on the current mapping mode. See Also8dG�H* $��2��������::LPtoDP �TvH3I1����������3IkI�MCDC::MoveToEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")8�HkI) "��2�������CDC::MoveTo�H3I�IE Z���r�=���~�������������CPoint MoveTo( int x, int y );CPoint MoveTo( POINT point );)kI!J& ��2������K�IlJ2 4�2�R�=��~�=�����ParameterDescriptionh!J�KX ~�!�R�=��~�=��������������T�����'������xSpecifies the logical x-coordinate of the endpoint for the line. ySpecifies the logical y-coordinate of the endpoint for the line. pointSpecifies the endpoint for the line. You can pass either a POINT structure or a CPoint object for this parameter. 4lJL) "��2�������Remarks�_�K�L? N���2���������������Moves the current position to the point specified by x and y (or by point). ReturnsML%M2 4���2������'������The x- and y-coordinates of the previous position as a CPoint object. 5�LZM) "��2�������See Also~<%M�MB T�x�2����Zs=�����s���������CDC::GetCurrentPosition, CDC::LineTo, ::MoveTo �[ZMdN1����������dN�N�CDC::OffsetClipRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")?�M�N) "�,�2�������CDC::OffsetClipRgn�NdN6OE Z���r�=���~�������������int OffsetClipRgn( int x, int y );int OffsetClipRgn( SIZE size );)�N_O& ��2������K6O�O2 4�2�R�=��~�=�����ParameterDescription��_O��@ N�U�R�=��~�=�������������xSpecifies the numb�O���Mer of logical units to move left or right. ySpecifies the number of logical units to move up or down. sizeSpecifies the amount to offset. 4�OԀ) "��2�������Remarks������: B�]�2�������������Moves the clipping region of the given device by the specified offsets. The function moves the region x units along the x-axis and y units along the y-axis. ReturnskEԀ'�& ���2������The new region's type. It can be any one of the following values: C��j�2 4�"�R��~Q������ValueMeaning
�'�w�H ^���R��~������������������COMPLEXREGIONClipping region has overlapping borders. ERRORDevice context is not valid. NULLREGIONClipping region is empty. SIMPLEREGIONClipping region has no overlapping borders. 4j���(  ��������See Also>w��) "�*��������::OffsetClipRgn �_��y�1<���������y���ƈCDC::OffsetViewportOrgEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")B���(  �4�������CDC::OffsetViewportOrgt<y�/�8 @�x�r�=���~��������CPoint OffsetViewportOrg( int nWidth, int nHeight );)��X�& ��2������K/���2 4�2�R�=��~Q�=�����ParameterDescription��X���8 >�u�R�=��~�=���������nWidthSpecifies the number of device units to add to the current origin's x-coordinate. nHeightSpecifies the number of device units to add to the current origin's y-coordinate. 4��Ɇ) "��2�������Remarks�f��\�- *���2���������Modifies the viewport origin relative to the coordinates of the current viewport origin. Returns�PɆއ2 4���2������'������The previous viewport origin (in device coordinates) as a CPoint object. 5\��) "��2�������See Also�eއƈN l���2�����w|
����+�����B���������CDC::GetViewportOrg, CDC::OffsetWindowOrg, CDC::SetViewportOrg, ::OffsetViewportOrg �]�T�13���������T�����CDC::OffsetWindowOrgEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")Aƈ��) "�0�2�������CDC::OffsetWindowOrgr:T��8 @�t�r�=���~��������CPoint OffsetWindowOrg( int nWidth, int nHeight );)��0�& ��2������K�{�2 4�2�R�=��~Q�=�����ParameterDescription��0�o�8 >�y�R�=��~�=���������nWidthSpecifies the number of logical units to add to the current origin's x-coordinate. nHeightSpecifies the number of logical units to add to the current origin's y-coordinate. 4{���) "��2�������Remarks�bo�2�- *���2���������Modifies the window origin relative to the coordinates of the current window origin. Returns�O����2 4���2������'������The previous window origin (in logical coordinates) as a CPoint object. 52��) "��2�������See Also�a����N l���2����������+�Հ���,�0��������CDC::GetWindowOrg, CDC::OffsetViewportOrg, CDC::SetWindowOrg, ::OffsetWindowOrg �V��1�����������X���CDC::PaintRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):��X�) "�"�2�������CDC::PaintRgnT"���2 4�D�r�=���~������BOOL PaintRgn( CRgn* pRgn );)X�Վ& ��2������K�� �2 4�2�R�=��~Q�=�����ParameterDescription�qՎ��/ .���R�=��~�=�����pRgnIdentifies the region to be filled. The coordinates for the given region are specified in device units. 4 ��) "��2�������Remarks�����~K����3 6���2�����������Fills the region specified by pRgn with the selected brush. Returnsj;���/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5��)�) "��2�������See Also�E����N l���2�����Q������`.����H]Cl��������CBrush, CDC::SelectObject, CDC::FillRgn, ::PaintRgn �T)�A�1�	���������A�y���CDC::PatBltEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")8��y�) "��2�������CDC::PatBlt�PA��J d���r�=���~��������������BOOL PatBlt( int x, int y, int nWidth, int nHeight, DWORD dwRop );)y�<�& ��2������K���2 4�2�R�=��~�=�����ParameterDescription�<���P n�a�R�=��~�=���������������������xSpecifies the logical x-coordinate of the upper-left corner of the rectangle that is to receive the pattern. ySpecifies the logical y-coordinate of the upper-left corner of the rectangle that is to receive the pattern. nWidthSpecifies the width (in logical units) of the rectangle that is to receive the pattern. nHeightSpecifies the height (in logical units) of the rectangle that is to receive the pattern. dwRopSpecifies the raster-operation code. Raster-operation codes (ROPs) define how GDI combines colors in output operations that involve a current brush, a possible source bitmap, and a destination bitmap. This parameter may be one of the following values: C����2 4�"�R����~Q�������ValueMeaningN����P n���R����~�����������������������PATCOPYCopies pattern to destination bitmap. PATINVERTCombines destination bitmap with pattern using the Boolean OR operator. DSTINVERTInverts the destination bitmap. BLACKNESSTurns all output black. WHITENESSTurns all output white. 4��L�) "��2�������Remarks��R�9 @���2������������Creates a bit pattern on the specified device. The pattern is a combination of the selected brush and the pattern already on the device. The raster-operation code specified by dwRop defines how the patterns are to be combined. The values of dwRop for this function are a limited subset of the full 256 ternary raster-operation codes; in particular, an operation code that refers to a source cannot be used. Not all devices support the PatBlt function. �oL��? N���2�������k<���������For more information, see the RC_BITBLT capability under the GetDeviceCaps member function. Returnsh9R�h�/ .�r�2���������TRUE if the bit pattern is drawn; otherwise FALSE. 5���) "��2�������See Also\&h���6 <�L�2����k<���������CDC::GetDeviceCaps, ::PatBlt �Q��{�1�
���������{����	CDC::PieEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")5����) "��2�������CDC::Pie�{���v ��=�r�=���~�����������������������������BOOL Pie( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4 );BOOL Pie( LPRECT lpRect, POINT ptStart, POINT ptEnd );)����& ��2������K��8�2 4�2�R�=��~Q�=�����ParameterDescriptionx(���P n�Q�R�=��~�=���������������������x1Specifies the x-coordinate of the upper-left corner of the bounding rectangle (in logical units). y1Specifies the y-coordinate of the upper-left corner of the bounding rectangle (in logical units). x2Specifies the x-coordinate of the lower-right corner of the bounding rectangle (in logical units). y2Specifies the y-coordinate of the lower-right corner of th8����e bounding rectangle (in logical units). x3Specifies the x-coordinate of the arc's starting point (in logical units). This point does not have to lie exactly on the arc. p8�,` ��!�R�=��~�=����������������	�����������y3Specifies the y-coordinate of the arc's starting point (in logical units). This point does not have to lie exactly on the arc. x4Specifies the x-coordinate of the arc's endpoint (in logical units). This point does not have to lie exactly on the arc. y4Specifies the y-coordinate of the arc's endpoint (in logical units). This point does not have to lie exactly on the arc. lpRectSpecifies the bounding rectangle. You can pass either a CRect object or a pointer to a RECT structure for this parameter. �s�h ����R�=��~�=������T�����'�����������T�����'������ptStartSpecifies the starting point of the arc. This point does not have to lie exactly on the arc. You can pass either a POINT structure or a CPoint object for this parameter. ptEndSpecifies the endpoint of the arc. This point does not have to lie exactly on the arc. You can pass either a POINT structure or a CPoint object for this parameter. 4,;) "��2�������Remarksc��� ���2���������������������������������������������Draws a pie-shaped wedge by drawing an elliptical arc whose center and two endpoints are joined by lines. The center of the arc is the center of the bounding rectangle specified by x1, y1, x2, and y2 (or by lpRect). The starting and ending points of the arc are specified by x3, y3, x4, and y4 (or by ptStart and ptEnd). The arc is drawn with the selected pen, moving in a counterclockwise direction. Two additional lines are drawn from each endpoint to the arc's center. The pie-shaped area is filled with the current brush. If x3 equals x4 and y3 equals y4, the result is an ellipse with a single line from the center of the ellipse to the point (x3, y3), or (x4, y4). 4;�) "��2�������Returnsj;�<	/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5�q	) "��2�������See AlsoQ<	�	6 <�6�2���㮎俀�������CDC::Chord, ::Pie �Zq	M
1
���������M
�
d
CDC::PlayMetaFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>�	�
) "�*�2�������CDC::PlayMetaFileX&M
�
2 4�L�r�=���~������BOOL PlayMetaFile( HANDLE hMF );)�
& ��2������K�
W2 4�2�R�=��~Q�=�����ParameterDescriptionP!�/ .�B�R�=��~�=�����hMFIdentifies the metafile. 4W�) "��2�������Remarks���- *���2���������Plays the contents of the specified metafile on the given device. The metafile can be played any number of times. Returnsj;��/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5�&
) "��2�������See Also>�d
* $�(�2��������::PlayMetaFile �U&
�
1P����������
#NCCDC::PolygonEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")9d
#) "� �2�������CDC::Polygonm5�
�8 @�j�r�=���~��������BOOL Polygon( LPPOINT lpPoints, int nCount );)#�& ��2������K�2 4�2�R�=��~Q�=�����ParameterDescription,��<@P n���R�=��~�=������T�����'����������lpPointsPoints to an array of points that specify the vertices of the polygon. Each point in the array is a POINT structure or a CPoint object. nCountSpecifi<@d
es the number of vertices given in the array. 4p@) "��2�������Remarks�=<@�AG \�{�2�������LЀ���N�@���������Draws a polygon consisting of two or more points (vertices) connected by lines. The system closes the polygon automatically, if necessary, by drawing a line from the last vertex to the first. The current polygon-filling mode can be retrieved or set by using GetPolyFillMode and SetPolyFillMode. Returnsj;p@^B/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5�A�B) "��2�������See Also�g^BNCT x���2�����LЀ�����l$p����N�@���������CDC::GetPolyFillMode, ::PolyLine, CDC::PolyPolygon, CDC::SetPolyFillMode, ::Polygon �V�B�C1y����������CDWHCDC::PolylineEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):NCD) "�"�2�������CDC::Polylinen6�C}D8 @�l�r�=���~��������BOOL Polyline( LPPOINT lpPoints, int nCount );)D�D& ��2������K}D�D2 4�2�R�=��~Q�=�����ParameterDescription���D�E8 >�#�R�=��~�=���������lpPointsPoints to an array of points to be connected. nCountSpecifies the number of points in the array. This value must be at least 2. 4�D�E) "��2�������RemarksU�ECGF Z��2��������s�����������Draws a set of line segments, connecting the points specified by lpPoints. The lines are drawn from the first point through subsequent points, using the current pen. Unlike LineTo, the Polyline function neither uses nor updates the current position. Returnsj;�E�G/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5CG�G) "��2�������See Alsou3�GWHB T�f�2�����s����� O�X��������CDC::LineTo, CDC::Polygon, ::PolyLine �Y�G�H1	����������HIۀCDC::PolyPolygonEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")=WHI) "�(�2�������CDC::PolyPolygon�O�H�I> L���r�=���~����������BOOL PolyPolygon( LPPOINT lpPoints, LPINT lpPolyCounts, int nCount );)I�I& ��2������K�IJ2 4�2�R�S��~Q�S�����ParameterDescription���ILd ��7�R�S��~�S������T�����'������������������lpPointsPoints to an array of POINT structures or CPoint objects that define the vertices of the polygons. lpPolyCountsPoints to an array of integers, each of which specifies the number of points in one of the polygons in the lpPoints array. nCountThe number of entries in the lpPolyCounts array. This number specifies the number of polygons to be drawn. This value must be at least 2. 4JRL) "��2�������RemarksA�L�NY ����2�������� O�X���㪌������� O�X�����Creates two or more polygons that are filled using the current polygon-filling mode. The polygons may be disjoint or they may overlap. Each polygon specified in a call to the PolyPolygon function must be closed. Unlike polygons created by the Polygon member function of CDC, the polygons created by PolyPolygon are not closed automatically. The function creates two or more polygons. To create a single polygon, an application should use the Polygon member function. ��RLjOF Z�#�2������LЀ���N�@���������The current polygon-filling mode can be retrieved or set by using the GetPolyFillMode and SetPolyFillMode member functions. Returnsj;�N�O/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5jO�) "��2�������Se�O�WHe Also�l�OۀZ ����2�����LЀ��� O�X�����/&����N�@���������CDC::GetPolyFillMode, CDC::Polygon, CDC::Polyline, CDC::SetPolyFillMode, ::PolyPolygon �W�c�1f���������c���ӅCDC::PtVisibleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')");ۀ��) "�$�2�������CDC::PtVisible�Vc�9�E Z���r�=���~�������������BOOL PtVisible( int x, int y ) const;BOOL PtVisible( POINT point ) const;)��b�& ��2������K9���2 4�2�R�=��~�=�����ParameterDescriptionXb��X ~��R�=��~�=��������������T�����'������xSpecifies the logical x-coordinate of the point. ySpecifies the logical y-coordinate of the point. pointSpecifies the point to check in logical coordinates. You can pass either a POINT structure or a CPoint object for this parameter. 4��9�) "��2�������Remarks�d�ʄ- *���2���������Specifies whether the given point is within the clipping region of the device context. Returns�R9�K�/ .���2���������TRUE if the specified point is within the clipping region; otherwise FALSE. 5ʄ��) "��2�������See AlsoSK�Ӆ6 <�:�2�����'���������CPoint, ::PtVisible �\��`�1_���������`���ΌCDC::RealizePaletteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")@Ӆ��) "�.�2�������CDC::RealizePaletteF`��, (�4�r�=���~����UINT RealizePalette();)���& ��2������4�C�) "��2�������Remarks���)  ���2��������Takes entries in the logical palette currently selected  into a device context and maps them to the system palette. A logical color palette acts as a buffer between color-intensive applications and the system, allowing an application to use as many colors as needed without interfering with its own color display, or with colors displayed by other windows. When a window has input focus and calls the function, Windows ensures that it will display all the colors it requests, up to the maximum number simultaneously available on the display, and displays colors not found in the window's palette by matching them to available colors. $�C��. *���2���������In addition, Windows matches the colors requested by inactive windows that call the function as closely as possible to the available colors. This significantly reduces undesirable changes in the colors displayed in inactive windows. Returns0	�?�' ��2������Specifies how many entries in the logical palette were mapped to different entries in the system palette. This represents the number of entries that this function remapped to accommodate changes in the system palette since the logical palette was last realized. 5�t�) "��2�������See AlsoZ$?�Ό6 <�H�2����4K2+��������CPalette, ::RealizePalette �Wt�V�1����������V���%�CDC::RectangleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')");Ό��) "�$�2�������CDC::Rectangle�bV�D�Q r���r�=���~�����������������BOOL Rectangle( int x1, int y1, int x2, int y2 );BOOL Rectangle( LPRECT lpRect );)��m�& ��2������KD���2 4�2�R�=��~Q�=�����ParameterDescription{m�?�h ��'�R�=��~�=��������������������	�����������x1Specifies the x-coordinate of the upper-left corner of the rectangle (in logical units). y1Specifies the y-coordinate of the upper-left corner of the rectangle (in logical units). x2Specifies the x-coordinate of��?�Ό the lower-right corner of the rectangle (in logical units). y2Specifies the y-coordinate of the lower-right corner of the rectangle (in logical units). lpRectSpecifies the rectangle in logical units. You can pass either a CRect object or a pointer to a RECT structure for this parameter. 4��s�) "��2�������Remarks�w?��- *���2���������Draws a rectangle using the current pen. The interior of the rectangle is filled using the current brush. Returnsj;s���/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5���) "��2�������See Alsoo3��%�< H�f�2�������ㄻ�n������::Rectangle, ::PolyLine, CDC::RoundRect �Y����1��������������q�CDC::RectVisibleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")=%���) "�(�2�������CDC::RectVisible`.��L�2 4�\�r�=���~������BOOL RectVisible( LPRECT lpRect ) const;)��u�& ��2������KL���2 4�2�R�=��~Q�=�����ParameterDescription��u���H ^��R�=��~�=����������	�����lpRectPoints to a RECT structure or a CRect object that contains the logical coordinates of the specified rectangle. 4����) "��2�������Remarks����l�. *��2���������Determines whether any part of the given rectangle lies within the clipping region of the current display context. Returns�d����/ .���2���������TRUE if some portion of the given rectangle lies within the clipping region; otherwise FALSE. 5l�4�) "��2�������See Also=��q�* $�&�2��������::RectVisible �W4���1������������4���CDC::RestoreDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')");q�4�) "�$�2�������CDC::RestoreDCW%����2 4�J�r�=���~������BOOL RestoreDC( int nSavedDC );)4���& ��2������K����2 4�2�R�=��~Q�=�����ParameterDescription����B R���R�=��~�=����F�1ƀ������nSavedDCSpecifies the device context to be restored. It must be a value returned by a previous SaveDC function call. If nSavedDC is -1, the most recent device context saved is restored. 4��:�) "��2�������Remarks�>���R r�}�2���������F�1ƀ�����������Restores the Windows device context to the previous state identified by nSavedDC. RestoreDC restores the device context by copying state information saved on the Windows internal context stack by earlier calls to the SaveDC member function. The Windows internal context stack can contain the state information for several device contexts. If the context specified by nSavedDC is not at the top of the stack, RestoreDC deletes any state information between the device context specified by nSavedDC and the top of the stack. The deleted information is lost. 4:���) "��2�������ReturnsrC��p�/ .���2���������TRUE if the specified context was restored; otherwise FALSE. 5����) "��2�������See AlsoX"p���6 <�D�2����F�1ƀ�������CDC::SaveDC, ::RestoreDC �W����1Z��������������CDC::RoundRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')");����) "�$�2�������CDC::RoundRect������d ���r�=���~�����������������������BOOL RoundRect( int x1, int y1, int x2, int y2, int x3, int y3 );BOOL RoundRect( LPRECT lpRect, POINT point );)����& ��2������K��)2 4�2�R�=��~Q�=�����)����ParameterDescription-���VP n���R�=��~�=���������������������x1Specifies the x-coordinate of the upper-left corner of the rectangle (in logical units). y1Specifies the y-coordinate of the upper-left corner of the rectangle (in logical units). x2Specifies the x-coordinate of the lower-right corner of the rectangle (in logical units). y2Specifies the y-coordinate of the lower-right corner of the rectangle (in logical units). x3Specifies the width of the ellipse used to draw the rounded corners (in logical units). �:)| ƀu�R�=��~�=��������	��������������������T�����'������y3Specifies the height of the ellipse used to draw the rounded corners (in logical units). lpRectSpecifies the bounding rectangle in logical units. You can pass either a CRect object or a pointer to a RECT structure for this parameter. pointThe x-coordinate of point specifies the width of the ellipse to draw the rounded corners (in logical units). The y-coordinate of point specifies the height of the ellipse to draw the rounded corners (in logical units). You can pass either a POINT structure or a CPoint object for this parameter. 4V@) "��2�������Remarks���. *��2���������Draws a rectangle with rounded corners, using the current pen. The interior of the rectangle is filled using the current brush. Returnsj;@e/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5��) "��2�������See Also[%e�6 <�J�2���㭿�C��������CDC::Rectangle, ::RoundRect �T�z1����������z�YCDC::SaveDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")8��) "��2�������CDC::SaveDCCz�, (�.�r�=���~����int SaveDC() const;)�& ��2������4�R) "��2�������Remarks�^�	A P���2�����kfDӀ����������Saves the current state of the device context by copying state information (such as clipping region, selected objects, and mapping mode) to a context stack maintained by Windows. The saved device context can later be restored by using RestoreDC. SaveDC can be used any number of times to save any number of device-context states. Returns��R�
3 4�Q�2�����kfDӀ����Specifies the saved device context. It is 0 if an error occurs. This return value is used on a subsequent call to RestoreDC to restore the device context state. 5�	) "��2�������See AlsoX"�
Y6 <�D�2����kfDӀ�������CDC::RestoreDC, ::SaveDC �^�1)����������*�ACDC::ScaleViewportExtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")BY*) "�2�2�������CDC::ScaleViewportExt�Q��D X���r�=���~������������CSize ScaleViewportExt( int xNum, int xDenom, int yNum, int yDenom );)*�& ��2������K�3
2 4�2�R�=��~Q�=�����ParameterDescriptioni!��H ^�C�R�=��~�=�����������������xNumSpecifies the amount by which to multiply the current x-extent. xDenomSpecifies the amount by which to divide the current x-extent. yNumSpecifies the amount by which to multiply the current y-extent. yDenomSpecifies the amount by which to divide the current y-extent. 43
�) "��2�������Remarks�f�\& ���2������Modifies the viewport extents relative to the current values. The formulas are written as follows: (��% ��0�����pJ\@& ���0���	���xNewVE = ( xOldVE * xNum ) / xDenomyNewVE = ( yOldVE * yNum ) / yDenom�@Y����@- (�!���������The new extent is calculated by multiplying the current extents by the given numerator and then dividing by the given denominator. Returns{J@DA1 2��������\
�����The previous viewport extents (in device units) as a CSize object. 4�@xA(  ��������See AlsoADA�A) "�0��������::ScaleViewportExt �\xAFB1����������FB�B�GCDC::ScaleWindowExtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")?�A�B(  �.�������CDC::ScaleWindowExt�OFBCD X���r�=���~������������CSize ScaleWindowExt( int xNum, int xDenom, int yNum, int yDenom );)�BAC& ��2������KC�C2 4�2�R�=��~Q�=�����ParameterDescriptioni!AC�DH ^�C�R�=��~�=�����������������xNumSpecifies the amount by which to multiply the current x-extent. xDenomSpecifies the amount by which to divide the current x-extent. yNumSpecifies the amount by which to multiply the current y-extent. yDenomSpecifies the amount by which to divide the current y-extent. 4�C)E) "��2�������Remarks�d�D�E& ���2������Modifies the window extents relative to the current values. The formulas are written as follows: ()E�E% ��0�����pJ�EKF& ���0���	���xNewVE = ( xOldVE * xNum ) / xDenomyNewVE = ( yOldVE * yNum ) / yDenom���EG- (�!���������The new extent is calculated by multiplying the current extents by the given numerator and then dividing by the given denominator. ReturnszIKF�G1 2��������\
�����The previous window extents (in logical units) as a CSize object. 4G�G(  ��������See Also?�G�G) "�,��������::ScaleWindowExt �V�G|H1����������|H�HV�CDC::ScrollDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")9�G�H(  �"�������CDC::ScrollDC�|H�IP p���r�=���~����������������BOOL ScrollDC( int dx, int dy, LPRECT lpRectScroll, LPRECT lpRectClip, CRgn* pRgnUpdate, LPRECT lpRectUpdate );)�H�I& ��2������K�I�I2 4�2�R�[��~Q�[�����ParameterDescriptione��I]L~ ʀ��R�[��~�[������������������	��������������	�������dxSpecifies the number of horizontal scroll units. dySpecifies the number of vertical scroll units. lpRectScrollPoints to the RECT structure or CRect object that contains the coordinates of the scrolling rectangle. lpRectClipPoints to the RECT structure or CRect object that contains the coordinates of the clipping rectangle. When this rectangle is smaller than the original pointed to by lpRectScroll, scrolling occurs only in the smaller rectangle. ���I6NV z��R�[��~�[����������������	�����pRgnUpdateIdentifies the region uncovered by the scrolling process. The ScrollDC function defines this region; it is not necessarily a rectangle. lpRectUpdatePoints to the RECT structure or CRect object that, upon return, contains the coordinates of the rectangle that bounds the scrolling update region. This is the largest rectangular area that requires repainting. 4]LjN) "��2�������Remarks�6N�� Ҁ9�2����������������������������%�����������Scrolls a rectangle of bits horizontally and vertically. The lpRectScroll parameter describes the rectangle to be scrolled, dx specifies the number of units to be scrolled horizontally, and dy specifies the number of units to be scrolled vertically. If lpRectUpdate jN��Gis NULL, Windows does not compute the update rectangle. If both pRgnUpdate and lpRectUpdate are NULL, Windows does not compute the update region. If pRgnUpdate is not NULL, Windows assumes that it contains a valid region pointer to the region uncovered by the scrolling process (defined by the ScrollDC member function). An application should use the ScrollWindow member function of class CWnd when it is necessary to scroll the entire client area of a window. Otherwise, it should use ScrollDC. 4jNH�) "��2�������Returnse6���/ .�l�2���������TRUE if scrolling is executed; otherwise FALSE. 5H��) "��2�������See Alsot2��V�B T�d�2����%��������v������CWnd::ScrollWindow, ::ScrollDC, CRgn �[��1�����������!�NjCDC::SelectClipRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")?V�!�) "�,�2�������CDC::SelectClipRgnX&�y�2 4�L�r�=���~������int SelectClipRgn( CRgn* pRgn );)!���& ��2������Ky��2 4�2�R�=��~Q�=�����ParameterDescription^/��K�/ .�^�R�=��~�=�����pRgnIdentifies the region to be selected. 4��) "��2�������Remarks�mK��. *���2���������Selects the given region as the current clipping region for the specified device context. Only a copy of the selected region is used. The region itself can be selected for any number of other device contexts, or it can be deleted. The function assumes that the coordinates for the given region are specified in device units. Some printer devices support graphics at lower resolutions than text output to increase speed, but at the expense of quality. These devices scale coordinates for graphics so that one graphics device point corresponds to two or four true device points. This scaling factor affects clipping. If a region will be used to clip graphics, its coordinates must be divided down by the scaling factor. If the region will be used to clip text, no scaling adjustment is needed. The scaling factor is determined by using the GETSCALINGFACTOR printer escape. 4�N�) "��2�������ReturnsgA���& ���2������The region's type. It can be any one of the following values: CN���2 4�"�R��~Q������ValueMeaning*���"�H ^���R��~������������������COMPLEXREGIONNew clipping region has overlapping borders. ERRORDevice context or region handle is not valid. NULLREGIONNew clipping region is empty. SIMPLEREGIONNew clipping region has no overlapping borders. 4��V�(  ��������See Alsoq0"�NjA R�`����O����v��������CDC::Escape, CRgn, ::SelectClipRgn �ZV�R�1����������R�����CDC::SelectObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")=Nj��(  �*�������CDC::SelectObjectxR��t ��	�r�=���~�������������������������������CGdiObject* SelectObject( CGdiObject* pObject );CPen* SelectObject( CPen* pPen );CBrush* SelectObject( CBrush* pBrush );CFont* SelectObject( CFont* pFont );CBitmap* SelectObject( CBitmap* pBitmap );int SelectObject( CRgn* pRgn );)��0�& ��2������K�{�2 4�2�R�=��~Q�=�����ParameterDescription)�0���� ΀S�R�=��~�=������b����������������������Q�����������������pObjectIdentifies the object to be selected. Note that this general version of the SelectObject member function does not work for regions. To select regions, see the version of SelectObject in the next group that is specialized for regions. pPenA{���Nj pointer to a CPen object to be selected. pBrushA pointer to a CBrush object to be selected. pFontA pointer to a CFont object to be selected. �u{�t�O n���R�=��~�=����VOܙ��������v�����pBitmapA pointer to a CBitmap object to be selected. pRgnA pointer to a CRgn object to be selected. 4����) "��2�������RemarksG�t���d ����2����㪌����b���������b��������������Selects an object into the current device context. Class CDC provides a general version of SelectObject and five versions specialized for particular kinds of GDI objects, including pens, brushes, fonts, bitmaps, and regions. The newly selected object replaces the previous object of the same type. For example, if pObject of the general version of SelectObject points to a CPen object, the function replaces the current pen with the pen specified by pObject. g��V�d ���2�����?��;����b�������㪌�������b�������Note that class CMetaFileDC overrides the SelectObject member function. The CMetaFileDC class is derived from class CDC specifically for use with metafiles. For information on object selection in metafiles, see the CMetaFileDC class. An application can select a bitmap into memory device contexts only, and into only one memory device context at a time. The format of the bitmap must either be monochrome or compatible with the specified device; if it is not, SelectObject returns an error. 4����) "��2�������Returnso*V���E X�U�2�����LC�m�����������A pointer to a CGdiObject object or to an object of one of the classes derived from CGdiObject, such as CPen, depending on which version of the function used. The object pointed to is being replaced by the object specified by the function's parameter. It is NULL if there is an error. 5��.�) "��2�������See Also�b����N l���2������y�����KXx�����ذ:��������CGdiObject::DeleteObject, CDC::SelectClipRgn, CDC::SelectPalette, ::SelectObject �[.�j�1L���������j���lCDC::SelectPaletteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")?����) "�,�2�������CDC::SelectPalette�Mj�.�8 @���r�=���~��������CPalette* SelectPalette( CPalette* pPalette, BOOL bForceBackground );)��W�& ��2������K.���2 4�2�R���[~Q�������ParameterDescriptionX�W���b ����R���[~��������op*�����������������pPaletteIdentifies the logical palette to be selected. This palette must already have been created with the CPalette member function CreatePalette. bForceBackgroundSpecifies whether the logical palette is forced to be a background palette. If bForceBackground is TRUE, the selected palette is always a background palette, regardless of whether the window has input focus. If bForceBackground is FALSE, the logical palette is a foreground palette when the window has input focus. 4��.�) "��2�������Remarks�W����. *���2���������Selects the logical palette specified by pPalette as the selected palette object of the device context. The new palette becomes the palette object used by GDI to control colors displayed in the device context and replaces the previous palette. An application can select a logical palette into more than one device context. However, changes to a logical palette will affect all device contexts for which it is selected. If an application selects a palette object into more than one device context, the device contexts must all belong to the same physical device (such as a display or printer). 4.�) "��2�������Returns���������9 @�3�2������������A pointer to a CPalette object, identifying the logical palette replaced by the palette specified by pPalette. It is NULL if there is an error. 5) "��2�������See AlsoY#�l6 <�F�2����4K2+��������CPalette, ::SelectPalette �_�1O	����������?]CDC::SelectStockObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")Cl?) "�4�2�������CDC::SelectStockObjectd2��2 4�d�r�=���~������CGdiObject* SelectStockObject( int nIndex );)?�& ��2������K�2 4�2�R�=��~Q�=�����ParameterDescription�^��/ .���R�=��~�=�����nIndexSpecifies the kind of stock object desired. It can be one of the following values: C�2 4�"�R�Ӄm}Q�������ValueMeaning)��� �3�R�Ӄm}�������������������������������������������������������BLACK_BRUSHBlack brush. DKGRAY_BRUSHDark gray brush. GRAY_BRUSHGray brush. HOLLOW_BRUSHHollow brush. LTGRAY_BRUSHLight gray brush. NULL_BRUSHNull brush. WHITE_BRUSHWhite brush. BLACK_PENBlack pen. NULL_PENNull pen. WHITE_PENWhite pen. ANSI_FIXED_FONTANSI fixed system font. ANSI_VAR_FONTANSI variable system font. DEVICE_DEFAULT_FONTDevice-dependent font. ��#@ N���R�Ӄm}���������������OEM_FIXED_FONTOEM-dependent fixed font. SYSTEM_FONTThe system font. By default, Windows uses the system font to draw menus, dialog-box controls, and other text. In Windows versions 3.0 and later, the system font is proportional width; earlier versions of Windows use a fixed-width system font. SYSTEM_FIXED_FONTThe fixed-width system font used in Windows prior to version 3.0. This object is available for compatibility with earlier versions of Windows. �p�/ .���R�Ӄm}�������DEFAULT_PALETTEDefault color palette. This palette consists of the 20 static colors in the system palette. 4#�) "��2�������Remarks�v��	9 B���2�����LC�m��������Selects a CGdiObject object that corresponds to one of the predefined stock pens, brushes, or fonts. Returns6���
W |���2�������������Q���������������A pointer to the CGdiObject object that was replaced if the function is successful. The actual object pointed to is a CPen, CBrush, or CFont object. If the call is unsuccessful, the return value is NULL. 5�	) "��2�������See AlsoM�
]0 0�:�2����gF������CGdiObject::GetObject �Z�1�����������&�CDC::SetAbortProcEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>]&) "�*�2�������CDC::SetAbortProc|J��2 4���r�=���~������int SetAbortProc( short ( FAR PASCAL EXPORT* lpfn )( HDC, short ) );)&�& ��2������K�
2 4�2�R�=��~Q�=�����ParameterDescription�~��
/ .���R�=��~�=�����lpfnA pointer to the abort function to install as the abort procedure. For more about this callback function, see below. 4
�
) "��2�������RemarksP�
S@@ N�!�2�������=������=������Installs the abort procedure for the print job. If an application is to allow the print job to be canceled during spooling, it must set the abort function before the print job is started with the StartDoc member function or the STARTDOC escape, which are equivalent. Print Manager calls the abort function during spooling to allow the application to cancel the print job or to process out-of-disk-space conditions. If no abort function is set, the�
S@] print job will fail if there is not enough disk space for spooling. �b�
C^ ����2�������ݪ\������������������Note that new features of Microsoft C/C++ let you use an ordinary function as the function passed to SetAbortProc. The address passed to EnumObjects is a FAR pointer to a function exported with __export and with the Pascal calling convention. In protect-mode applications, you do not have to create this function with the Windows MakeProcInstance function or free the function after use with FreeProcInstance. You also do not have to export the function name in an EXPORTS statement in your application's module-definition file. You can instead use  the __export function modifier, as in v=S@�C9 B�z�pȘR����������short FAR PASCAL __export AFunction( HDC, short ); !�C�F9 @���������������to cause the compiler to emit the proper export record for export by name without aliasing. This works for most needs. For some special cases, such as exporting a function by ordinal or aliasing the export, you still need to use an EXPORTS statement in a module-definition file. For compiling Foundation programs, you'll normally use the /GA and /GEs compiler options. The /Gw compiler option is not used with the Foundation classes. (If you do use MakeProcInstance, you will need to explicitly cast the returned function pointer from FARPROC to the type needed in this API.) Callback registration interfaces are now type-safe (you must pass in a function pointer that points to the right kind of function for the specific callback). -�C�G, &���������Also note that all callback functions must trap Foundation exceptions before returning to Windows, since exceptions cannot be thrown across callback boundaries. For more information about exceptions, see Chapter 12 in the Class Libraries User's Guide. >�FH) "�*�2�������Callback Function��G�H2 4���2����������The callback function must use the Pascal calling convention, must be exported with __export, and must be declared FAR. �NHeIQ r���pȘR������������������short FAR PASCAL __export AbortFunc( HDC hPr, short code ); ���H4J, &�G��������The name AbortFunc is a placeholder for the application-supplied function name. The actual name must be exported as described in the "Remarks" section above. KeIJ2 4�2�R�=��~Q�=�����ParameterDescription�4J�LV z�y�R�=��~�=�������������������hPrIdentifies the device context. codeSpecifies whether an error has occurred. It is 0 if no error has occurred. It is SP_OUTOFDISK if Print Manager is currently out of disk space and more disk space will become available if the application waits. If code is SP_OUTOFDISK, the application does not have to abort the print job. If it does not, it must yield to Print Manager by calling the PeekMessage or GetMessage function. 9J�L) "� �2�������Return Value���LyM. *��2���������The return value of the abort-handler function is nonzero if the print job is to continue, and 0 if it is canceled. Returns���L1N- (��2��������Specifies the outcome of the SetAbortProc function. Some of the following values are more probable than others, but all are possible. CyMtN2 4�"�R��~Q������ValueMeaningZ1N�H ^�%�R��~������������������SP_ERRORGeneral error. SP_OUTOFDISKNot enough disk space is currently available for spooling, and no more space will become available. SP_OUTOFMEMORYNot enough memory is available for spooling. SP_USERABORTUser terminated the job through the Print Manager. tN�]�XtN��1;�����������ЀڅCDC::SetBkColorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')");�Ѐ(  �&�������CDC::SetBkColorZ(��*�2 4�P�r�=���~������DWORD SetBkColor( DWORD crColor );)ЀS�& ��2������K*���2 4�2�R�=��~Q�=�����ParameterDescription_0S���/ .�`�R�=��~�=�����crColorSpecifies the new background color. 4��1�) "��2�������Remarks���B�. *���2���������Sets the current background color to the specified color. If the background mode is OPAQUE, the system uses the background color to fill the gaps in styled lines, the gaps between hatched lines in brushes, and the background in character cells. The system also uses the background color when converting bitmaps between color and monochrome device contexts. If the device cannot represent the specified color, the system sets the background color to the nearest physical color. 41�v�) "��2�������Returns�lB��& ���2������The previous background color as an RGB color value. If an error occurs, the return value is 0x80000000. 5v�=�) "��2�������See Also�O�څN l���2����b�ᎀ���5�����ƃ��������CDC::GetBkColor, CDC::GetBkMode, CDC::SetBkMode, ::SetBkColor �W=�b�1E���������b�����CDC::SetBkModeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')");څ��) "�$�2�������CDC::SetBkModeU#b��2 4�F�r�=���~������int SetBkMode( int nBkMode );)���& ��2������K�f�2 4�2�R�=��~Q�=�����ParameterDescription�a���/ .���R�=��~�=�����nBkModeSpecifies the background mode. This parameter can be either of the following values: Cf�9�2 4�"�R��7~Q������ValueMeaning�����8 >�Y�R��7~����������OPAQUEBackground is filled with the current background color before the text, hatched brush, or pen is drawn. TRANSPARENTBackground is not changed before drawing. 49�Q�) "��2�������Remarks��`�. *���2���������Sets the background mode. The background mode defines whether the system removes existing background colors on the drawing surface before drawing text, hatched brushes, or any pen style that is not a solid line. ReturnsMQ�ߊ2 4���2����������The previous background mode. It can be either OPAQUE or TRANSPARENT. 5`��) "��2�������See Also�Oߊ��N l���2����b�ᎀ���5���������������CDC::GetBkColor, CDC::GetBkMode, CDC::SetBkColor, ::SetBkMode �Y�;�1����������;�x��CDC::SetBrushOrgEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")=��x�) "�(�2�������CDC::SetBrushOrg�R;��E Z���r�=���~�������������CPoint SetBrushOrg( int x, int y );CPoint SetBrushOrg( POINT point );)x�8�& ��2������K���2 4�2�R�=��~�=�����ParameterDescription��8�i�X ~��R�=��~�=��������������T�����'������xSpecifies the x-coordinate (in device units) of the new origin. This value must be in the range 0-7. ySpecifies the y-coordinate (in device units) of the new origin. This value must be in the range 0-7. pointSpecifies the x- and y-coordinates of the new origin. Each value must be in the range 0-7. You can pass either a POINT structure or a CPoint object for this parameter. 4����) "��2�������Remarks��i���A P�k�2���������Q���������Specifies the origin that GDI wil������l assign to the next brush that an application selects into a device context. Do not use SetBrushOrg with stock CBrush objects. Returns�n��3�& ���2������The previous origin of the brush in device units (which are relative to the origin of the desktop window). 5��h�) "��2�������See Also�a3��N l���2����
0������`.����X��~��������CDC::GetBrushOrg, CDC::SelectObject, CGdiObject::UnrealizeObject, ::SetBrushOrg �Xh���1��������������z�CDC::SetMapModeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")<���) "�&�2�������CDC::SetMapModeW%��3�2 4�J�r�=���~������int SetMapMode( int nMapMode );)��\�& ��2������K3���2 4�2�R�=��~Q�=�����ParameterDescription�X\�.�/ .���R�=��~�=�����nMapModeSpecifies the new mapping mode. It can be any one of the following values: C��q�2 4�"�R�C��}Q�C�����ValueMeaning*�.���d ����R�C��}�C����?0���������㪌�������������MM_ANISOTROPICLogical units are mapped to arbitrary units with arbitrarily scaled axes. The SetWindowExt and SetViewportExt member functions of class CDC must be used to specify the desired units, orientation, and scaling. MM_HIENGLISHEach logical unit is mapped to 0.001 inch. Positive x is to the right; positive y is up. MM_HIMETRICEach logical unit is mapped to 0.01 millimeter. Positive x is to the right; positive y is up. X�q���\ ����R�C��}�C����?0���������㪌���������MM_ISOTROPICLogical units are mapped to arbitrary units with equally scaled axes; that is, one unit along the x-axis is equal to one unit along the y-axis. The SetWindowExt and SetViewportExt member functions of class CDC must be used to specify the desired units and the orientation of the axes. GDI makes adjustments as necessary to ensure that the x and y units remain the same size. MM_LOENGLISHEach logical unit is mapped to 0.01 inch. Positive x is to the right; positive y is up. �d����@ N���R�C��}�C�������������MM_LOMETRICEach logical unit is mapped to 0.1 millimeter. Positive x is to the right; positive y is up. MM_TEXTEach logical unit is mapped to one device pixel. Positive x is to the right; positive y is down. MM_TWIPSEach logical unit is mapped to one-twentieth of a printer's point (1/1440 inch). Positive x is to the right; positive y is up. 4����) "��2�������Remarks~&��I�X ~�M�2�����������������������Sets the mapping mode. The mapping mode defines the unit of measure used to transform logical units into device units, and also defines the orientation of the device's x- and y-axes. GDI uses the mapping mode to convert logical coordinates into the appropriate device coordinates. The MM_TEXT mode allows applications to work in device pixels, whose size varies from device to device. The MM_HIENGLISH, MM_HIMETRIC, MM_LOENGLISH, MM_LOMETRIC, and MM_TWIPS modes are useful for applications that need to draw in physically meaningful units (such as inches or millimeters). The MM_ISOTROPIC mode ensures a 1:1 aspect ratio, which is useful when it is important to preserve the exact shape of an image. The MM_ANISOTROPIC mode allows the x- and y-coordinates to be adjusted independently. 4��}�) "��2�������ReturnsDI���& �<�2������The previous mapping mode. 5}���) "��2�������See Also�B��z�B T���2����������?0��������CDC::SetViewportExt, CDC::SetWindowExt, ::SetMapMode �\��1r���������S�CDC::SetMapperFlagsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `z�z�CDC')")@z�S) "�.�2�������CDC::SetMapperFlags]+�2 4�V�r�=���~������DWORD SetMapperFlags( DWORD dwFlag );)S�& ��2������K�$2 4�2�R�=��~Q�=�����ParameterDescription*��N0 .���R�=��~�=�����dwFlagSpecifies whether the font mapper attempts to match a font's aspect height and width to the device. When the first bit is set to 1, the mapper will only select fonts whose x-aspect and y-aspect exactly match those of the specified device. 4$�) "��2�������Remarks�N�4 6���2�����������Alters the algorithm that the font mapper uses when it maps logical fonts to physical fonts. When the first bit of dwFlag is set to 1, the mapper will only select fonts whose x-aspect and y-aspect exactly match those of the specified device. If no fonts exist with a matching aspect height and width, GDI chooses an aspect height and width and selects fonts with aspect heights and widths that match the one chosen by GDI. The remaining bits of dwFlag must be 0. 4��) "��2�������ReturnsU/�& �^�2������The previous value of the font-mapper flag. 5�K) "��2�������See Also@�* $�,�2��������::SetMapperFlags �VK1����������L
CDC::SetPixelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):�L) "�"�2�������CDC::SetPixel�l	Q r���r�=���~�����������������DWORD SetPixel( int x, int y, DWORD crColor );DWORD SetPixel( POINT point, DWORD crColor );)L2& ��2������K	}2 4�2�R�=��~�=�����ParameterDescription�Z27	` ����R�=��~�=������������������T�����'������xSpecifies the logical x-coordinate of the point to be set. ySpecifies the logical y-coordinate of the point to be set. crColorSpecifies the color used to paint the point. pointSpecifies the logical x- and y-coordinates of the point to be set. You can pass either a POINT structure or a CPoint object for this parameter. 4}k	) "��2�������Remarks�j7	G \���2����������k<���������Sets the pixel at the point specified to the closest approximation of the color specified by crColor. The point must be in the clipping region. If the point is not in the clipping region, the function is ignored. Not all devices support the function. For more information, see the RC_BITBLT capability in the GetDeviceCaps member function. Returns:
k	V- (��2��������An RGB color value for the color that the point is actually painted. This value can be different than that specified by crColor if an approximation of that color is used. If the function fails (if the point is outside the clipping region), the return value is -1. 5�) "��2�������See Also};V
B T�v�2����k<�����깵܀�������CDC::GetDeviceCaps, CDC::GetPixel, ::SetPixel �]��
1j	����������
�
oDCDC::SetPolyFillModeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")A
�
) "�0�2�������CDC::SetPolyFillModea/�
82 4�^�r�=���~������int SetPolyFillMode( int nPolyFillMode );)�
a& ��2������K8�2 4�2�R�_��~Q�_�����ParameterDescription�eaL; F���R�_��~�_���������nPolyFillModeSpecifies the new filling mode. This value may be either ALTERNATE or WINDING. 4��) "��2�������Remarks�ZLC5 8���2������������Sets the polygon-filling mode. When the polygon-filling mode is ALTERNAT�C
E, the system fills the area between odd-numbered and even-numbered polygon sides on each scan line. That is, the system fills the area between the first and second side, between the third and fourth side, and so on. When the polygon-filling mode is WINDING, the system uses the direction in which a figure was drawn to determine whether to fill an area. Each line segment in a polygon is drawn in either a clockwise or a counterclockwise direction. Whenever an imaginary line drawn from an enclosed area to the outside of a figure passes through a clockwise line segment, a count is incremented. When the line passes through a counterclockwise line segment, the count is decremented. The area is filled if the count is nonzero when the line reaches the outside of the figure. 4�OC) "��2�������Returnsb<C�C& �x�2������The previous filling mode. It is 0 if there is an error. 5OC�C) "��2�������See Also�G�CoDB T���2�����LЀ���l$p��������CDC::GetPolyFillMode, CDC::PolyPolygon, ::SetPolyFillMode �U�C�D1
����������D.EOCDC::SetROP2EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")9oD.E) "� �2�������CDC::SetROP2U#�D�E2 4�F�r�=���~������int SetROP2( int nDrawMode );).E�E& ��2������K�E�E2 4�2�R�=��~Q�=�����ParameterDescription�Y�EF/ .���R�=��~�=�����nDrawModeSpecifies the new drawing mode. It can be any one of the following values: C�E�F2 4�"�R�7�	~Q�7�����ValueMeaning2�F�Hh ����R�7�	~�7���������������������������������R2_BLACKPixel is always black. R2_WHITEPixel is always white. R2_NOPPixel remains unchanged. R2_NOTPixel is the inverse of the display color. R2_COPYPENPixel is the pen color. R2_NOTCOPYPENPixel is the inverse of the pen color. R2_MERGEPENNOTPixel is a combination of the pen color and the inverse of the display color. R2_MASKPENNOTPixel is a combination of the colors common to both the pen and the inverse of the display. ��FKV z�u�R�7�	~�7�����������������������R2_MERGENOTPENPixel is a combination of the display color and the inverse of the pen color. R2_MASKNOTPENPixel is a combination of the colors common to both the display and the inverse of the pen. R2_MERGEPENPixel is a combination of the pen color and the display color. R2_NOTMERGEPENPixel is the inverse of the R2_MERGEPEN color. R2_MASKPENPixel is a combination of the colors common to both the pen and the display. /��H3LL f���R�7�	~�7�����������������R2_NOTMASKPENPixel is the inverse of the R2_MASKPEN color. R2_XORPENPixel is a combination of the colors in the pen and in the display, but not in both. R2_NOTXORPENPixel is the inverse of the R2_XORPEN color. 4KgL) "��2�������Remarks��3L N/ ,��2����������Sets the current drawing mode. The drawing mode specifies how the colors of the pen and the interior of filled objects are combined with the color already on the display surface. Drawing modes are binary raster-operation codes, representing all possible Boolean functions of two variables, using the binary operations AND, OR, and XOR (exclusive OR), and the unary operation NOT. ReturnsDgLdN& �<�2������The previous drawing mode. 5 N�N) "��2�������See Also{9dNOB T�r�2����k<�����{��À�������CDC::GetDeviceCaps, CDC::GetROP2, ::SetROP2 �_�N�O1p����������O�2�CDC::SetStretchBltModeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")CO�) "�4�2�������CDC::SetStretchBltMode�O�Ob0�On�2 4�`�r�=���~������int SetStretchBltMode( int nStretchMode );)���& ��2������Kn��2 4�2�R�S��~Q�S�����ParameterDescription�b��s�/ .���R�S��~�S�����nStretchModeSpecifies the new bitmap-stretching mode. It can be one of the following values: C���2 4�"�R��;~Q������ValueMeaning��s���@ N�i�R��;~��������������BLACKONWHITEUses the AND operator to combine eliminated lines with the remaining lines. This mode preserves black pixels at the expense of colored or white pixels. COLORONCOLORDeletes the eliminated lines. Information in the eliminated lines is not preserved. WHITEONBLACKUses the OR operator to combine eliminated lines with the remaining lines. This mode preserves colored or white pixels at the expense of black pixels. 4��ރ) "��2�������Remarks�{����M h���2�����__Zπ��������������Sets the bitmap-stretching mode for StretchBlt. The bitmap-stretching mode defines how information is removed from bitmaps that are compressed by using the function. The BLACKONWHITE and WHITEONBLACK modes are typically used to preserve foreground pixels in monochrome bitmaps. The COLORONCOLOR mode is typically used to preserve color in color bitmaps. See Also�Jރ2�B T���2����48#�����__Zπ�������CDC::GetStretchBltMode, CDC::StretchBlt, ::SetStretchBltMode �Z����19
��������������CDC::SetTextAlignEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>2���) "�*�2�������CDC::SetTextAlignY'��T�2 4�N�r�=���~������UINT SetTextAlign( UINT nFlags );)��}�& ��2������KT�ȇ2 4�2�R�=��~Q�=�����ParameterDescriptionH}��: B��R�=��~�=�����������nFlagsSpecifies text-alignment flags. The flags specify the relationship between a point and a rectangle that bounds the text. The point can be either the current position or coordinates specified by a text-output function. The rectangle that bounds the text is defined by the adjacent character cells in the text string. The nFlags parameter can be one or more flags from the following three categories. Only one flag may be chosen from each category. The first category affects text alignment in the x direction: CȇS�2 4�"�R����~Q�������ValueMeaningu5�ȋ@ N�k�R����~���������������TA_CENTERSpecifies alignment of the point and the horizontal center of the bounding rectangle. TA_LEFTSpecifies alignment of the point and the left side of the bounding rectangle. This is the default setting. TA_RIGHTSpecifies alignment of the point and the right side of the bounding rectangle. oCS�7�, (���R�=��~�=����The second category affects text alignment in the y direction: Cȋz�2 4�"�R��M~Q�������ValueMeaning]7�׍@ N�;�R��M~���������������TA_BASELINESpecifies alignment of the point and the baseline of the chosen font. TA_BOTTOMSpecifies alignment of the point and the bottom of the bounding rectangle. TA_TOPSpecifies alignment of the point and the top of the bounding rectangle. This is the default setting. �`z�c�, (���R�=��~�=����The third category determines whether the current position is updated when text is written: C׍��2 4�"�R�1�~Q�1�����ValueMeaning.�c�ԏ8 >���R�1�~�1���������TA_NOUPDATECPSpecifies that the current position is not updated after each call to a text-output function. This is the default setting. TA_UPDATECPSpecifies that the current position is updated after each call to a text-output function. 4���) "��2�������Reԏ�2�marks
�ԏ!�M h���2������%������������������Sets the text-alignment flags. The functions TextOut and ExtTextOut use these flags when positioning a string of text on a display or device. The flags specify the relationship between a specific point and a rectangle that bounds the text. The coordinates of this point are passed as parameters to the TextOut member function. The rectangle that bounds the text is formed by the adjacent character cells in the text string. Returns���
�' ���2������The previous text-alignment setting. The low-order byte contains the horizontal alignment and the high-order byte contains the vertical alignment. The return value is 0 if there is an error. 5!�?�) "��2�������See Also�j
��Z ����2�����������,����ヮӀ���%���������CDC::ExtTextOut, CDC::GetTextAlign, CDC::TabbedTextOut, CDC::TextOut, ::SetTextAlign �c?���1.���������������CDC::SetTextCharacterExtraEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")G���) "�<�2�������CDC::SetTextCharacterExtrad2��B�2 4�d�r�=���~������int SetTextCharacterExtra( int nCharExtra );)��k�& ��2������KB���2 4�2�R�=��~Q�=�����ParameterDescription
�k���< F���R�=��~�=���������nCharExtraSpecifies the amount of extra space (in logical units) to be added to each character. If the current mapping mode is not MM_TEXT, nCharExtra is transformed and rounded to the nearest pixel. 4����) "��2�������Remarks������. *�e�2���������Sets the amount of intercharacter spacing. GDI adds this spacing to each character, including break characters, when it writes a line of text to the device context. Returns\6��3�& �l�2������The amount of the previous intercharacter spacing. 5��h�) "��2�������See Alsos=3���6 <�z�2���㌬�L��������CDC::GetTextCharacterExtra, ::SetTextCharacterExtra �Zh�f�1����������f���G�CDC::SetTextColorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>����) "�*�2�������CDC::SetTextColor\*f��2 4�T�r�=���~������DWORD SetTextColor( DWORD crColor );)��)�& ��2������K�t�2 4�2�R�=��~Q�=�����ParameterDescriptionrC)���/ .���R�=��~�=�����crColorSpecifies the color of the text as an RGB color value. 4t��) "��2�������Remarks�����G \�?�2������������ƃ��������Sets the text color to the specified color. The system will use this text color when writing text to this device context and also when converting bitmaps between color and monochrome device contexts. If the device cannot represent the specified color, the system sets the text color to the nearest physical color. The background color for a character is specified by SetBkColor and SetBkMode. ReturnsS-�S�& �Z�2������An RGB value for the previous text color. 5���) "��2�������See Also�eS�G�Z ����2�����<��������2����������ƃ��������CDC::GetTextColor, CDC::BitBlt, CDC::SetBkColor, CDC::SetBkMode, ::SetTextColor �b����1�
����������� ��	CDC::SetTextJustificationEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")FG� �) "�:�2�������CDC::SetTextJustification}E����8 @���r�=���~��������int SetTextJustification( int nBreakExtra, int nBreakCount );) ���& ��2������K��2 4�2�R�I��~Q�I�����Paramet��G�erDescription�J���> J���R�I��~�I�����������nBreakExtraSpecifies the total extra space to be added to the line of text (in logical units). If the current mapping mode is not MM_TEXT, the value given by this parameter is converted to the current mapping mode and rounded to the nearest device unit. nBreakCountSpecifies the number of break characters in the line. 4�) "��2�������Remarks���_ ��e�2������U��������%�������|>���������Adds space to the break characters in a string. An application can use GetTextMetrics to retrieve a font's break character. After calling the SetTextJustification member function, a call to TextOut distributes the specified extra space evenly among the specified number of break characters. The break character is usually the space character (ASCII 32), but may be defined by a font as some other character. The function GetTextExtent is typically used with SetTextJustification. GetTextExtent computes the width of a given line before justification. This width is compared to the width of the line after justification to determine how much space to add to the line. n4�X: B�i�2���������|>�����The SetTextJustification function can be used to justify a line that contains multiple runs in different fonts. In this case, the line must be created piecemeal by justifying and writing each run separately. Because rounding errors can occur during justification, the system keeps a running error term that defines the current error. When justifying a line that contains multiple runs, GetTextExtent automatically uses this error term when it computes the extent of the next run. This allows the text-output function to blend the error into the new run. ��t: B���2�������������After each line has been justified, this error term must be cleared to prevent it from being incorporated into the next line. The term can be cleared by calling SetTextJustification with nBreakExtra set to 0. ReturnsY3X�& �f�2������One if the function is successful; otherwise 0. 5t	) "��2�������See Also����	g ���2����3܁j�����|>�����U�����׸����%���������CDC::GetMapMode, CDC::GetTextExtent, CDC::GetTextMetrics, CDC::SetMapMode, CDC::TextOut, ::SetTextJustification �\	
1"���������
�
�ACDC::SetViewportExtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")@�	�
) "�.�2�������CDC::SetViewportExt�T
XE Z���r�=���~�������������CSize SetViewportExt( int x, int y );CSize SetViewportExt( SIZE size );)�
�& ��2������KX�2 4�2�R�=��~�=�����ParameterDescription	���@ N���R�=��~�=�������������xSpecifies the x-extent of the viewport (in device units). ySpecifies the y-extent of the viewport (in device units). sizeSpecifies the x- and y-extents of the viewport (in device units). 4�	
) "��2�������Remarks����: B�_�2������?0�������Sets the x- and y-extents of the viewport of the device context. The viewport, along with the device-context window, defines how GDI maps points in the logical coordinate system to points in the coordinate system of the actual device. In other words, they define how GDI converts logical coordinates into device coordinates. When the following mapping modes are set, calls to SetWindowExt and SetViewportExt are ignored: �X	
�P p���pȘR���������������������MM_HIENGLISH MM_HIMETRIC MM_LOENGLISH MM_LOMETRIC MM_TEXT MM_TWIPS �z�d@D X���������?0����������When MM_ISOTROPIC mode is set, �d@�	an application must call SetWindowExt before it calls SetViewportExt. Returns���A2 2�������\
�����The previous extents of the viewport as a CSize object. When an error occurs, the x- and y-coordinates are both set to 0. 4d@KA(  ��������See Alsob-A�A5 :�Z����?0��������CDC::SetWindowExt, ::SetViewportExt �\KA:B1����������:ByB�JCDC::SetViewportOrgEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")?�AyB(  �.�������CDC::SetViewportOrg�X:BCE Z���r�=���~�������������CPoint SetViewportOrg( int x, int y );CPoint SetViewportOrg( POINT point );)yB?C& ��2������KC�C2 4�2�R�=��~�=�����ParameterDescriptionL�?C�EX ~���R�=��~�=��������������T�����'������xSpecifies the x-coordinate (in device units) of the origin of the viewport. The value must be within the range of the device coordinate system. ySpecifies the y-coordinate (in device units) of the origin of the viewport. The value must be within the range of the device coordinate system. pointSpecifies the origin of the viewport. The values must be within the range of the device coordinate system. You can pass either a POINT structure or a CPoint object for this parameter. 4�C
F) "��2�������Remarks�c�E�I4 6���2������,�0�����Sets the viewport origin of the device context. The viewport, along with the device-context window, defines how GDI maps points in the logical coordinate system to points in the coordinate system of the actual device. In other words, they define how GDI converts logical coordinates into device coordinates. The viewport origin marks the point in the device coordinate system to which GDI maps the window origin, a point in the logical coordinate system specified by SetWindowOrg. GDI maps all other points by following the same process required to map the window origin to the viewport origin. For example, all points in a circle around the point at the window origin will be in a circle around the point at the viewport origin. Similarly, all points in a line that passes through the window origin will be in a line that passes through the viewport origin. 4
F�I) "��2�������Returns�W�I^J2 4���2������'������The previous origin of the viewport (in device coordinates) as a CPoint object. 5�I�J) "��2�������See Alsoc-^J�J6 <�Z�2����,�0��������CDC::SetWindowOrg, ::SetViewportOrg �Z�J�K1 ����������K�K��CDC::SetWindowExtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>�J�K) "�*�2�������CDC::SetWindowExt�P�KTLE Z���r�=���~�������������CSize SetWindowExt( int x, int y );CSize SetWindowExt( SIZE size );)�K}L& ��2������KTL�L2 4�2�R�=��~�=�����ParameterDescription�}L�M@ N���R�=��~�=�������������xSpecifies the x-extent (in logical units) of the window. ySpecifies the y-extent (in logical units) of the window. sizeSpecifies the x- and y-extents (in logical units) of the window. 4�LN) "��2�������Remarks�\�M�O: B���2���������������Sets the x- and y-extents of the window associated with the device context. The window, along with the device-context viewport, defines how GDI maps points in the logical coordinate system to points in the device coordinate system. When the following mapping modes are set, calls to SetWindowExt and SetViewportExt functions are ignored: �XNL�P p���pȘR���������������������MM_HIENGLISH MM_HI�OL��JMETRIC MM_LOENGLISH MM_LOMETRIC MM_TEXT MM_TWIPS ���O�? L������������������When MM_ISOTROPIC mode is set, an application must call the SetWindowExt member function before calling SetViewportExt. Returns��L���8 >�_������\
�������The previous extents of the window (in logical units) as a CSize object. If an error occurs, the x- and y-coordinates of the returned CSize object are both set to 0. 4�1�(  ��������See Alsoy8����A R�p�������������\
������CDC::SetViewportExt, ::SetWindowExt, CSize �Z1�5�1R���������5�r���CDC::SetWindowOrgEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")=��r�(  �*�������CDC::SetWindowOrg�T5��E Z���r�=���~�������������CPoint SetWindowOrg( int x, int y );CPoint SetWindowOrg( POINT point );)r�4�& ��2������K��2 4�2�R�=��~�=�����ParameterDescription�44��X ~�i�R�=��~�=��������������T�����'������xSpecifies the logical x-coordinate of the new origin of the window. ySpecifies the logical y-coordinate of the new origin of the window. pointSpecifies the logical coordinates of the new origin of the window. You can pass either a POINT structure or a CPoint object for this parameter. 4�?�) "��2�������Remarks>�}�. *�!�2���������Sets the window origin of the specified device context. The window, along with the device-context viewport, defines how GDI maps points in the logical coordinate system to points in the device coordinate system. The window origin marks the point in the logical coordinate system from which GDI maps the viewport origin, a point in the device coordinate system specified by the SetWindowOrg function. GDI maps all other points by following the same process required to map the window origin to the viewport origin. For example, all points in a circle around the point at the window origin will be in a circle around the point at the viewport origin. Similarly, all points in a line that passes through the window origin will be in a line that passes through the viewport origin. 4?���) "��2�������Returnso=}� �2 4�z�2������'������The previous origin of the window as a CPoint object. 5��U�) "��2�������See Also> ���* $�(�2��������::SetWindowOrg �VU��1&����������T���CDC::StartDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')"):��T�) "�"�2�������CDC::StartDoca/���2 4�^�r�=���~������int StartDoc( const char FAR* pDocName );)T�ދ& ��2������=���) "�(�2�������Windows 3.1 only\*ދw�2 4�T�r�=���~������int StartDoc( LPDOCINFO lpDocInfo );)���& ��2������Kw��2 4�2�R�=��~Q�=�����ParameterDescription�e����> J���R�=��~�=�����������pDocNamePointer to a null-terminated string that specifies the name of the document. The document name is displayed in the Print Manager window. The maximum length of this string is 31 characters plus the terminating null character. lpDocInfoPoints to a DOCINFO structure containing the name of the document file and the name of the output file. 4�Ž) "��2�������Remarks#�����F Z���2�������S�N������=������Informs the device driver that a new print job is starting and that all subsequent NEWFRAME escape calls should be spooled under the same job until an ENDDOC escape call occurs. This ensures that documents longer than one page will not be inŽ����terspersed with other jobs. For Windows version 3.1, this function replaces the STARTDOC printer escape. Using this function ensures that documents containing more than one page are not interspersed with other print jobs. l<Ž]�0 0�x�2����������StartDoc should not be used inside metafiles. Returns�����' ��2������The value -1 if there is an error such as insufficient memory or an invalid port specification occurs. Otherwise, a positive value. 5]�@�) "��2�������See Also`$���< H�H�2����O����S�N������CDC::Escape, CDC::EndDoc �W@�(�1Q���������(�c���CDC::StartPageEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')");��c�) "�$�2�������CDC::StartPage@(���, (�(�r�=���~����int StartPage();)c���& ��2������4���) "��2�������Remarks"���"�N j���2��������������=���������Prepares the printer driver to receive data. StartPage supersedes the NEWFRAME and BANDINFO escapes. For an overview of the sequence of printing calls, see the StartDoc member function. See Alsoa%���< H�J�2����O����x�������CDC::Escape, CDC::EndPage �X"��12����������H�		CDC::StretchBltEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")<��H�) "�&�2�������CDC::StretchBlt��O�i ��=�r�=���~������������������������BOOL StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop );)H�x�& ��2������KO���2 4�2�R�=��~�=�����ParameterDescriptiondx�'�X ~��R�=��~�=�������������������������xSpecifies the x-coordinate (in logical units) of the upper-left corner of the destination rectangle. ySpecifies the y-coordinate (in logical units) of the upper-left corner of the destination rectangle. nWidthSpecifies the width (in logical units) of the destination rectangle. nHeightSpecifies the height (in logical units) of the destination rectangle. pSrcDCSpecifies the source device context. xSrcSpecifies the x-coordinate (in logical units) of the upper-left corner of the source rectangle. #���J�H ^���R�=��~�=�����������������ySrcSpecifies the x-coordinate (in logical units) of the upper-left corner of the source rectangle. nSrcWidthSpecifies the width (in logical units) of the source rectangle. nSrcHeightSpecifies the height (in logical units) of the source rectangle. dwRopSpecifies the raster operation to be performed. Raster operation codes define how GDI combines colors in output operations that involve a current brush, a possible source bitmap, and a destination bitmap. 4'�~�) "��2�������Remarks��J��v ���2�����@A�B����������������������������Moves a bitmap from a source rectangle into a destination rectangle, stretching or compressing the bitmap if necessary to fit the dimensions of the destination rectangle. The function uses the stretching mode of the destination device context (set by SetStretchBltMode) to determine how to stretch or compress the bitmap. The StretchBlt function moves the bitmap from the source device given by pSrcDC to the destination device represented by the device-context object whose member function is being called. The xSrc, ySrc, nSrcWidth, and nSrcHeight parameters define the upper left corner and dimensions of the source rectangle. The x, y, nWidth, and nHeight parameters give the upper-left corner and dimensions of the destination rectangle. The raster ~����operation specified by dwRop defines how the source bitmap and the bits already on the destination device are combined. �~~�jd ����2���������������������������The StretchBlt function creates a mirror image of a bitmap if the signs of the nSrcWidth and nWidth or nSrcHeight and nHeight parameters differ. If nSrcWidth and nWidth have different signs, the function creates a mirror image of the bitmap along the x-axis. If nSrcHeight and nHeight have different signs, the function creates a mirror image of the bitmap along the y-axis. The StretchBlt function stretches or compresses the source bitmap in memory, then copies the result to the destination. If a pattern is to be merged with the result, it is not merged until the stretched source bitmap is copied to the destination. If a brush is used, it is the selected brush in the destination device context. The destination coordinates are transformed according to the destination device context; the source coordinates are transformed according to the source device context. ���%4 6��2�����������If destination, source, and pattern bitmaps do not have the same color format, StretchBlt converts the source and pattern bitmaps to match the destination bitmaps. The foreground and background colors of the destination are used in the conversion. If StretchBlt must convert a monochrome bitmap to color, it sets white bits (1) to background color and black bits (0) to foreground color. To convert color to monochrome, it sets pixels that match the background color to white (1), and sets all other pixels to black (0). The foreground and background colors of the device context with color are used. Not all devices support the function. �hj�? N���2�������k<���������For more information, see the RC_BITBLT capability in GetDeviceCaps member function. Returnsc4%// .�h�2���������TRUE if the bitmap is drawn; otherwise FALSE. 5�d) "��2�������See Also�W/		N l���2�������2����k<�����@A�B��������CDC::BitBlt, CDC::GetDeviceCaps, CDC::SetStretchBltMode, ::StretchBlt �[d�	11����������	�	TFCDC::TabbedTextOutEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")?		�	) "�,�2�������CDC::TabbedTextOut���	�
W |�5�r�=���~������������������CSize TabbedTextOut( int x, int y, const char FAR* lpString, int nCount, int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin );)�	�
& ��2������K�
92 4�2�R��9~�������ParameterDescription1��
j
b ����R��9~����������������x�
1�������������xSpecifies the logical x-coordinate of the starting point of the string. ySpecifies the logical y-coordinate of the starting point of the string. lpStringPoints to the character string to draw. You can pass either a const FAR pointer to an array of characters or a CString object for this parameter. nCountSpecifies the number of characters in the string. nTabPositionsSpecifies the number of values in the array of tab-stop positions. yA9�8 >���R��9~�����������lpnTabStopPositionsPoints to an array containing the tab-stop positions (in device units). The tab stops must be sorted in increasing order; the smallest x-value should be the first item in the array. nTabOriginSpecifies the x-coordinate of the starting position from which tabs are expanded (in logical units). 4j
) "��2�������Remarks�R��AS t���2����������������������Writes a character string at a specified location, expanding tabs to the values specified in an array of tab-stop positions. Text is written in the c�A		urrently selected font. If nTabPositions is 0 and lpnTabStopPositions is NULL, tabs are expanded to eight times the average character width. If nTabPositions is 1, the tab stops are separated by the distance specified by the first value in the lpnTabStopPositions array. If the lpnTabStopPositions array contains more than one value, a tab stop is set for each value in the array, up to the number specified by nTabPositions. ��Dj ��E�2�������������� ɟ���������������The nTabOrigin parameter allows an application to call the TabbedTextOut function several times for a single line. If the application calls the function more than once with the nTabOrigin set to the same value each time, the function expands all tabs relative to the position specified by nTabOrigin. By default, the current position is not used or updated by the function. If an application needs to update the current position when it calls the function, the application can call SetTextAlign with nFlags set to TA_UPDATECP. When this flag is set, Windows ignores x and y on subsequent calls to TabbedTextOut, using the current position instead. 4�AE) "��2�������ReturnsmA�DuE, (���2��������The dimensions of the string (in logical units) as a CSize. 5E�E) "��2�������See Also�\uETFN l���2����m����� ɟ����%���������CDC::GetTabbedTextExtent, CDC::SetTextAlign, CDC::TextOut, ::TabbedTextOut �U�E�F1�����������FGmNCDC::TextOutEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")9TFG) "� �2�������CDC::TextOut���F�G^ ���r�=���~���������������������BOOL TextOut( int x, int y, const char FAR* lpString, int nCount );BOOL TextOut( int x, int y, const CString& str );)G#H& ��2������K�GnH2 4�2�R�=��~�=�����ParameterDescription�_#H#JV z���R�=��~�=�����������������������xSpecifies the logical x-coordinate of the starting point of the text. ySpecifies the logical y-coordinate of the starting point of the text. lpStringThe pointer to the characters to write. nCountSpecifies the number of characters to write. strA CString object or null-terminated string that contains the chararacters to write. 4nHWJ) "��2�������RemarksZ#J�LY ���2��������� ɟ���������������Writes a character string at a specified location, using the currently selected font. Character origins are at the upper-left corner of the character cell. By default, the current position is not used or updated by the function. If an application needs to update the current position when it calls TextOut, the application can call SetTextAlign with nFlags set to TA_UPDATECP. When this flag is set, Windows ignores x and y on subsequent calls to TextOut, using the current position instead. 4WJ�L) "��2�������Returnsj;�LOM/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5�L�M) "��2�������See Also��OMmNg ���2������������|>���� ɟ����B����ヮӀ�������CDC::ExtTextOut, CDC::GetTextExtent, CDC::SetTextAlign, CDC::SetTextColor, CDC::TabbedTextOut, ::TextOut �Z�M�N1����������N6O��CDC::UpdateColorsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>mN6O) "�*�2�������CDC::UpdateColorsD�NzO, (�0�r�=���~����void UpdateColors();)6O�O& ��2������4zO�O) "��2�������Remarks���Oڂ5 8���2�������OڂmN������Updates the client area of the device context by matching the current colors in the client area to the system palette on a pixel-by-pixel basis. An inactive window with a realized logical palette may call UpdateColors as an alternative to redrawing its client area when the system palette changes. For more information on using color palettes, see the Windows Software Development Kit documentation. The UpdateColors member function typically updates a client area faster than redrawing the area. However, because the function performs the color translation based on the color of each pixel before the system palette changed, each call to this function results in the loss of some color accuracy. 5�O�) "��2�������See Also};ڂ��B T�v�2������4����4K2+��������CDC::RealizePalette, CPalette, ::UpdateColors �\��1�����������S�class CDialogEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')"):��S�) "�"�2�������class CDialog8���) "��2�������Descriptionh"S��F Z�E�2�����������f��������The CDialog class is an abstract class for displaying dialog boxes on the screen. To get a modeless dialog box, you must derive your own class from CDialog. To derive modal dialog boxes, use the CModalDialog class. The constructors for class CDialog are protected, so you must derive your own class. A modeless dialog box allows the user to display the dialog box and return to another task without canceling or removing the dialog box. A modal dialog box requires the user to close the dialog box before the application continues. n(��a�F Z�Q�2�����R����\僭��������You can create a modeless dialog in one step or two. To create it in one step, write the constructor so it calls the object's Create member function. To create it in two steps, don't include a call to Create in the constructor. Invoke the constructor for your dialog object, then call the object's Create member function. A modeless dialog box receives messages from Windows like any other window. To process messages in your derived dialog-box class, provide message-handler member functions for the messages the dialog box can process. i��ʋj ����2�����:d�������;P������I`t����I`t�����������Your message-handler member functions specify what happens when the user works with your dialog box. Typically, you'll override the OnInitDialog member function when you need to initialize controls (such as setting the initial text of an edit box). You'll also override the OnClose member function of your derived dialog class to call CWnd::DestroyWindow. Instead of calling DestroyWindow, you can call the C++ delete operator on the this reference, which calls DestroyWindow for you. �la�j�4 6���2������R�����Your derived dialog-box class can also add member variables to store data entered by the user or data for display to the user. You can add member functions to set or get these values. A modeless dialog box can also send messages to its parent window. Create your dialog box from a dialog-box resource template, as in traditional Windows. The dialog-box resource specifies a template name or ID, a font to use, a set of controls, such as buttons and edit boxes, and the window styles that apply to the dialog box. To create a dialog box from a template, specify the  template in your .RC file and compile it with a resource compiler. The resulting .RES file is sent to the linker, which incorporates the resource information with your executable program. Specify the name or ID of the template when you call the Create member function from your dialog-box constructor. ��ʋl�^ ��1�2�������ٛ������������
�E���������Instead of creating your dialog box from a compiled resj�l���ource, you can build the resource yourself in memory, construct an object of your class derived from CDialog, and use the CreateIndirect member function to create the dialog box from the template in memory. The template constructed in memory uses a DLGTEMPLATE data structure, as described in the Windows Software Development Kit documentation. If the dialog-box template (in a resource file or in memory) specifies the WS_VISIBLE style, the dialog-box window appears in its parent window. Otherwise, you must call the ShowWindow member function, which CDialog inherits from class CWnd. �,j��j ��Y�2�����\僭������:d������:d�����������;�������After the call to Create, Windows sends a WM_INITDIALOG message to the dialog box. You can override the OnInitDialog member function to perform dialog-box initialization chores. For example, if your dialog box displays statistics about the current font, you can override OnInitDialog to set the current values of the static text controls in the dialog box to reflect the statistics. Although the dialog-box template can specify the dialog-box font, you can also set the font on the fly. If the dialog-box template specifies the DS_SETFONT style, Windows sends a WM_SETFONT message to the dialog box before creating the controls. In response to this message, the application calls the OnSetFont member function. You can override that message-handler function to set the dialog-box font. I�l�K�� Ѐ��2�����I`t������+����I`t����}��U����׸$q����;P�����������When the user terminates a modeless dialog box, call the DestroyWindow member function, which CDialog inherits from class CWnd, to remove the dialog window and destroy its data  structures. You can call DestroyWindow from the OnOK, OnCancel, or OnClose member functions, which you can override from class CWnd. If you allocate any memory in the dialog object, override the CDialog destructor to dispose of the allocations. 5���) "��2�������See AlsoDK���0 0�(�2������f������CModalDialog O���0 0�>�2����������Public MembersOperations<���O�n ����R�ׁE~���-@䬀������*8������$�^!������8z5Ӏ�����0��u������MapDialogRectConverts the dialog-box units of a rectangle to screen units. IsDialogMessageDetermines whether the given message is intended for the modeless dialog box and, if so, processes it. NextDlgCtrlMoves the focus to the next dialog-box control in the dialog box. PrevDlgCtrlMoves the focus to the previous dialog-box control in the dialog box. GotoDlgCtrlMoves the focus to a specified dialog-box control in the dialog box. 0���R r���R�ׁE~���O1������]�|������㈴!������SetDefIDChanges the default pushbutton control for a dialog box to a specified pushbutton. GetDefIDGets the ID of the default pushbutton control for a dialog box. EndDialogTerminates a modal dialog box. 9O���) "� �2�������Overridables�����D V�K�R�s��~�s�:d��������;��������OnInitDialogOverride to augment dialog-box initialization. OnSetFontOverride to specify the font that a dialog-box control is to use when drawing text. >����) "�*�2�������Protected MembersE��$�) "�8�2�������Construction/Destructionh-����; F�Z�R������?��������CDialogConstructs a CDialog object. ;$���) "�$�2�������Initialization���P n���R����~���R����������ٛ��������CreateInitializes the CDialog object. Creates the modeless dialog and attaches it to the CDialog object. CreateIndirectCreates a modeless dialog box from a dialog-box template in memory. �����]���1������������CDialog::CDialogEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")<�(  �(�������CDialog::CDialog:�, (��r�=���~����CDialog();)�9& ��2������4m) "��2�������Remarks�[9G \���2��������\僭����������The CDialog constructor is protected because you must derive your own dialog-box class to implement a dialog. Construction of a modeless dialog is a two-step process. First invoke the constructor, then call either form of the Create member function. You can combine the steps by calling Create from within your constructor. See Alsop4m< H�h�2����R����ٛ��������CDialog::Create, CDialog::CreateIndirect �\1����������HjBCDialog::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")<H) "�&�2�������CDialog::Create��#L f��r�=���~���������������BOOL Create( const char FAR* lpTemplateName, CWnd* pParentWnd = NULL );BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );)HL& ��2������K#�2 4�2�R���w~Q�������ParameterDescription�KL,J b���R���w~����������+�������lpTemplateNameContains a null-terminated string that is the name of a dialog-box resource template. pParentWndPoints to the parent window object (of type CWnd) to which the dialog object belongs. If it is NULL, the dialog object's parent window is set to the main application window, as shown in the following code: -�Y* $��P��w~�����lE,�' ���0����	���if( pParentWnd == NULL )    pParentWnd = AfxGetApp()->m_pMainWnd;yJY>/ .���R���w~�������nIDTemplateContains the ID number of a dialog-box resource template. 4�r) "��2�������Remarksr1>�
A P�c�2�����\僭�����\僭������Call Create when you construct your dialog-box object. You can put the call to create inside the constructor or call it after the constructor executes. Two forms of the Create member function are provided for access to the dialog template resource either by template name or by template ID number. For either form, you also pass a pointer to the parent window object. If you don't, the dialog will be created with its parent window set to the main application window. Modeless dialogs can use this pointer to send messages to the parent if needed. �r�^ ��g�2�����������:d������;�������\僭�����Before the dialog box is displayed, Windows sends the WM_INITDIALOG message to the dialog box. If the dialog box has the DS_SETFONT style, Windows also sends the WM_SETFONT message before the control windows are created. You can override the OnInitDialog and OnSetFont member functions to provide special handling of these messages. The Create member function returns immediately after it creates the dialog box. E�
:- (�1�2��������Use the WS_VISIBLE style in the dialog template if the dialog box should appear when the parent window is created. You can also specify other dialog styles in the template as explained in the Windows Software Development Kit documentation. These include styles that specify: X&��2 4�N�R��2�h��"����The frame around the dialog box. n<:2 4�z�R��2�h��"����Whether the dialog window is a pop-up or child window. n<�n2 4�z�R��2�h��"����Whether the dialog box has a border or a Control menu. zH@2 4���R��2�h��"����How controls are to be grouped and the tabbing order between them. n@��n�@@ N�=�������\僭���������Use the CWnd::DestroyWindow function to destroy a dialog box created by the Create function. A dialog box can contain up to 255 controls. Returns�e@�A1 2������������Both forms return TRUE if dialog creation and initialization was successful; otherwise FALSE. 4�@�A(  ��������See Also�i�AjBM j������I`t����ٛ��������������CWnd::DestroyWindow, CDialog::CreateIndirect, ::CreateDialog, WM_SETFONT, WM_INITDIALOG �d�A�B1�����������BBCOCDialog::CreateIndirectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")CjBBC(  �6�������CDialog::CreateIndirect�c�B�C8 @���r�=���~��������Protected: BOOL CreateIndirect( const BYTE FAR* lpDialogTemplate, CWnd* pParentWnd = NULL);)BCD& ��2������K�CQD2 4�2�R���u~Q�������ParameterDescription;�D�FP n���R���u~������������+�������lpDialogTemplatePoints to a global memory object that contains a dialog-box template used to create the dialog box. An application must build the dialog-box template according to the guidelines outlined in the description of the application-defined DLGTEMPLATE data structure. pParentWndPoints to the dialog object's parent window object (of type CWnd). If it is NULL, the dialog object's parent window is set to the main application window, as shown in the following code: -QD�F* $��P��u~�����lE�F%G' ���0����	���if( pParentWnd == NULL )    pParentWnd = AfxGetApp()->m_pMainWnd;4�FYG) "��2�������Remarks"�%G{I^ ����2�������y�����������:d������;�������Creates a modeless dialog box from a dialog-box template in memory. CreateIndirect is protected. Before the dialog box is displayed, Windows sends the WM_INITDIALOG message to the dialog box. If the dialog box has the DS_SETFONT style, Windows also sends the WM_SETFONT message before the control windows are created. You can override the OnInitDialog and OnSetFont member functions to provide special handling of these messages. �zYG/K: B���2�������y��������The CreateIndirect member function returns immediately after it creates the dialog box. Use the WS_VISIBLE style in the dialog-box template if the dialog box should appear in the parent window upon creation. You can also specify other dialog styles in the template as explained in the Windows Software Development Kit documentation. These include styles that specify: X&{I�K2 4�N�R��2�h��"����The frame around the dialog box. n</K�K2 4�z�R��2�h��"����Whether the dialog window is a pop-up or child window. n<�KcL2 4�z�R��2�h��"����Whether the dialog box has a border or a Control menu. zH�K�L2 4���R��2�h��"����How controls are to be grouped and the tabbing order between them. ��cL�M@ N�M���������y���������Use the CWnd::DestroyWindow function to destroy a dialog box created by the CreateIndirect function. A dialog box can contain up to 255 controls. Returns�T�LEN. ,�����������TRUE if the dialog was created and initialized successfully; otherwise FALSE. 4�MyN(  ��������See Also�OENOG ^������R����I`t����������CDialog::Create, CWnd::DestroyWindow, WM_INITDIALOG, WM_SETFONT �_yN�O1�����������O�Ob�CDialog::EndDialogEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")>O�O(  �,�������CDialog::EndDialogV$�O?�2 4�H�r�=����O?�O~������void EndDialog( int nResult );)�Oh�& ��2������K?���2 4�2�R�=��~Q�=�����ParameterDescription�jh�L�/ .���R�=��~�=�����nResultContains the value to be returned from the dialog box to the member function that created it. 4����) "��2�������Remarks�}L�P�S t���2���������������:d���������Used for modal dialog boxes. Modeless dialogs do not use this member function. The EndDialog member function terminates a modal dialog box and returns the given result to the function that created the dialog box. The EndDialog function is required to complete processing whenever a modal dialog box is created and may not be used for any other purpose. The dialog function can call EndDialog at any time, even during the processing of the WM_INITDIALOG message in OnInitDialog. If called during processing of the WM_INITDIALOG message, the dialog box is terminated before it is shown or before the input focus is set. m0����= H�a�2��������������EndDialog does not close the dialog box immediately. Instead, it sets a flag that directs the dialog box to close as soon as the standard Foundation dialog-box function (AfxDlgProc) ends. The EndDialog function returns to the dialog-box function, so it must return control to Windows. See Also�WP�b�N l���2������f����R����ٛ����������CModalDialog, CDialog::Create, CDialog::CreateIndirect, WM_INITDIALOG �^���12����������/�0�CDialog::GetDefIDEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")>b�/�) "�*�2�������CDialog::GetDefIDA�p�, (�*�r�=���~����DWORD GetDefID();)/���& ��2������4p�͇) "��2�������Remarks������4 6�#�2�����������Call the GetDefID member function to get the ID of the default pushbutton control for a dialog box. This is usually an OK button. Returns �͇��3 4���2����������A 32-bit value (DWORD). If the default pushbutton has an ID value, the high-order word contains DC_HASDEFID and the low-order word contains the ID value. If the default pushbutton does not have an ID value, the return value is 0. 5���) "��2�������See AlsoI��0�0 0�2�2����O1������CDialog::SetDefID �a�Š1����������Š�ǎCDialog::GotoDlgCtrlEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")A0��) "�0�2�������CDialog::GotoDlgCtrl[)Š^�2 4�R�r�=���~������void GotoDlgCtrl( CWnd* pWndCtrl );)���& ��2������K^�ҋ2 4�2�R�=��~Q�=�����ParameterDescriptionzK��L�/ .���R�=��~�=�����pWndCtrlIdentifies the window (control) that is to receive the focus. 4ҋ��) "��2�������Remarks�ZL�3�Y ����2����������+����"?:�����������Moves the focus to the specified control in the dialog. To get a pointer to the control (child window) to pass as pWndCtrl, call the CWnd::GetDlgItem member function, which returns the pointer as a pointer to a CWnd object. This pointer can then be cast to its specific type. GetDlgItem is inherited from class CWnd. See Also�L��ǎH `���2����"?:�����8z5Ӏ���$�^!������CWnd::GetDlgItem, CDialog::PrevDlgCtrl, CDialog::NextDlgCtrl �e3�]�1c���������]�����CDialog::IsDialogMessageEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")Eǎ��) "�8�2�������CDialog::IsDialogMessage\*]��2 4�T�r�=���~������BOOL IsDialogMessage( LPMSG lpMsg );���ǎ)��5�& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescription�P5��5 :���R�=��~�=�������lpMsgPoints to an MSG structure that contains the message to be checked. 4��9�) "��2�������Remarks�T���L f���2�������������������Determines whether the given message is intended for the modeless dialog box and automatically processes the message if it is. When the IsDialogMessage function processes a message, it checks for keyboard messages and converts them to selection commands for the corresponding dialog box. For example, the TAB key selects the next control or group of controls, and the DOWN ARROW key selects the next control in a group. A message processed by IsDialogMessage must not be passed to the TranslateMessage or DispatchMessage Windows functions. The message has already been processed. �d9�s�6 <���2������������IsDialogMessage sends the WM_GETDLGCODE message to determine which keys to process. Returns�S���Q p���2�����������H��Հ��������Specifies whether the given message has been processed. It is TRUE if the message has been processed; otherwise FALSE. If the return is FALSE, call the PreTranslateMessage member function of the base class to process the message. The code looks like this in an override of the CDialog PreTranslateMessage member function: (s�?�% ��0����������, &��0���	��������CMyDlg::PreTranslateMessage( msg ){if( IsDialogMessage( msg )return TRUE;elsereturn CDialog::PreTranslateMessage( msg );}4?�!�(  ��������See Also�m����G ^������������.��[��������::DispatchMessage, ::TranslateMessage, ::GetMessage, CWnd::PreTranslateMessage, WM_GETDLGCODE �c!�i�1���������i�����CDialog::MapDialogRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")B����(  �4�������CDialog::MapDialogRectb0i�
�2 4�`�r�=���~������void MapDialogRect( LPRECT lpRect ) const;)��6�& ��2������K
���2 4�2�R�=��~Q�=�����ParameterDescription�b6��5 :���R�=��~�=�������lpRectPoints to a RECT structure that contains the dialog-box coordinates to be converted. 4��L�) "��2�������Remarks�]���4 6���2�����������Converts the dialog-box units of a rectangle to screen units. Dialog-box units are stated in terms of the current dialog base unit derived from the average width and height of characters in the font used for dialog-box text. Typically, dialog boxes use the system font, but a different font may be specified by using the DS_SETFONT style in the resource-definition file. One horizontal unit is one-fourth of the dialog-box base width unit, and one vertical unit is one-eighth of the dialog-box base height unit. The Windows function GetDialogBaseUnits returns the dialog-box base units in pixels. �L���: B���2�������������The MapDialogRect member function replaces the dialog-box units in lpRect with screen units (pixels), so that the rectangle can be used to create a dialog box or position a control within a box. See Also�Z����H `���2������R����ٛ����������::GetDialogBaseUnits, CDialog::Create, CDialog::CreateIndirect, WM_SETFONT �a�� �1���������� �a�NCDialog::NextDlgCtrlEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")A��a�) "�0�2�������CDialog::NextDlgCtrlI ���, (�:�r�=���~����void NextDlgCtrl() const;)a���& ��2������4��) "��2�������Rem����arks�����. *�7�2���������Moves the focus to the next control in the dialog box. If the focus is at the last control in the dialog box, it moves to the first control. See Alsor6N< H�l�2����8z5Ӏ���0��u������CDialog::PrevDlgCtrl, CDialog::GotoDlgCtrl �b��1�����������#�CDialog::OnInitDialogEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")BN#) "�2�2�������CDialog::OnInitDialogL �o, (�@�r�=���~����virtual BOOL OnInitDialog();)#�& ��2������4o�) "��2�������Remarksk�7L f�?�2�������\僭������������Called in response to the WM_INITDIALOG message. This message is sent during the Create or CDialog::CreateIndirect call, which occurs immediately before the dialog box is displayed. Override it if you need to perform special processing when the dialog box is initialized. The OnInitDialog function is called via the standard global dialog-box procedure, AfxDlgProc, common to all Microsoft Foundation Class Library dialogs, rather than through your message map, so you do not need a message-map entry for this member function. 4�k) "��2�������ReturnswK7�, (���2��������Returns TRUE by default, indicating successful dialog initialization. 5k) "��2�������See Also�E��B T���2����R����ٛ����������CDialog::Create, CDialog::CreateIndirect, WM_INITDIALOG �_.11���������.mmCDialog::OnSetFontEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")?�m) "�,�2�������CDialog::OnSetFont_-.�2 4�Z�r�=���~������virtual void OnSetFont( CFont* pFont );)m�& ��2������K�@2 4�2�R�=��~Q�=�����ParameterDescription����6 :��R�=��~�=�������pFontSpecifies a pointer to the font. If this parameter is NULL, the control will draw text using the default system font. 4@,	) "��2�������Remarks&��R: B���2�������������Specifies which font a dialog-box control is to use when drawing text. The dialog-box font normally gets set in the .RC resource file as part of the dialog-box resource template. If you want to set it instead at run time, specify the DS_SETFONT style in your dialog-box template. With that style set, Windows sends a WM_SETFONT message to the dialog box before creating the controls. The OnSetFont member function is then called automatically via the standard dialog-box procedure. 8�,	�
: B���2�������y���������The application should call the CGdiObject::DeleteObject function to delete the font when it is no longer needed, such as after the control is destroyed. Also call CGdiObject::DeleteObject to delete the old font before you set the new one. The size of the control is not changed as a result of receiving this message. To prevent Windows from clipping text that does not fit within the boundaries of the control, the application should correct the size of the control window before changing the font. �|R3- *���2���������For more information about dialog resource templates, see the Windows Software Development Kit documentation. See Also:�
m* $� �2��������WM_SETFONT �a3�1�����������@\ACDialog::PrevDlgCtrlEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")Am@) "�0�2�������CDialog::PrevDlgCtrlI��, (�:�r�=���~����void PrevDlgCtrl() const;)@�& ��2������4�@) "��2�������Remarks�@m����@. *�a�2���������Sets the focus to the previous control in the dialog box. If the focus is at the first control in the dialog box, it moves to the last control in the dialog box. See Alsor6@\A< H�l�2����$�^!����0��u������CDialog::NextDlgCtrl, CDialog::GotoDlgCtrl �^�@�A1h����������A)B`DCDialog::SetDefIDEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDialog')")>\A)B) "�*�2�������CDialog::SetDefIDR �A{B2 4�@�r�=���~������void SetDefID( UINT nID );))B�B& ��2������K{B�B2 4�2�R�=��~Q�=�����ParameterDescription�Q�BoC/ .���R�=��~�=�����nIDSpecifies the ID of the pushbutton control that will become the default. 4�B�C) "��2�������RemarkstGoCD- *���2���������Changes the default pushbutton control for a dialog box. See AlsoI�C`D0 0�2�2����]�|�������CDialog::GetDefID �ZD�D1�����������D#Eh�class CEditEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')")8`D#E) "��2�������class CEdit8�D[E) "��2�������Description~#E�G_ ��?�2������������վ�����������\僭�����The CEdit class provides the functionality of a Windows edit control. An edit control is a rectangular child window in which the user can enter text. You create an edit control in two steps. First, call the constructor CEdit to construct the CEdit object, then call the Create member function to create the Windows edit control and attach it to the CEdit object. Construction can be a one-step process in a class derived from CEdit. Write a constructor for the derived class and call Create from within the constructor. �[E�H3 4���2����������If you want to handle the Windows notification messages sent by a CEdit object to its parent (usually a class derived from CDialog), add the following message-map entries and message-handler member functions to the parent class: ���G�Ie ���pȘR����{�������������������������ON_COMMAND ON_EN_SETFOCUS ON_EN_KILLFOCUS ON_EN_MAXTEXT ON_EN_CHANGE ON_EN_UPDATE ON_EN_HSCROLL ON_EN_VSCROLL �D�H�L] ����������������������������If you create a CEdit object within a dialog box, the CEdit is automatically destroyed when the user closes the dialog box. If you create a CEdit object within a window, you may also need to destroy it. If you create the CEdit object on the stack, it is destroyed automatically. If you create the CEdit object on the heap by using the new function, you must call delete on the object to destroy it when the user terminates the Windows edit control. If you allocate any memory in the CEdit object, override the CEdit destructor to dispose of the allocations. 4�I�L(  ��������See Also�r�L�M� ր�����+���㉄N�����Є'����"�������3Iـ���M3�0������f������K�������CWnd, CButton, CComboBox, CListBox, CScrollBar, CStatic, CModalDialog, CDialog ]-�LN0 0�Z�2����������Public MembersConstruction/Destructionk1�MzN: D�b�R�ӀI����P� ��������CEditConstructs a CEdit control object. ;N�N) "�$�2�������Initialization�UzNDO: D���R��1���վ����������CreateCreates the Windows edit control and attaches it to the CEdit object. E�N�O) "�8�2�������Multiple-Line OperationsV�DO�n ����R�y��~�y�V�R������dtI������ý������3u=�������MQ�]������GetLine�O�`DCountRetrieves the number of lines in a multiple-line edit control. GetHandleRetrieves a handle to the memory currently allocated for a multiple-line edit control. SetHandleSets the handle to the local memory that will be used by a multiple-line edit control. FmtLinesSets the inclusion of soft line-break characters on or off within a multiple-line edit control. LineIndexRetrieves the character index of a line within a multiple-line edit control. g�OR�R r�+�R�y��~�y�qo�������S�&������mħ�������SetRectSets the formatting rectangle of a multiple-line edit control and updates the control. SetRectNPSets the formatting rectangle of a multiple-line edit control without updating the control. SetTabStopsSets the tab stops in a multiple-line edit control. ?���) "�,�2�������General Operations@�R�х| ƀ��R�ہA~��㯾�������ەx������gBa�������
��������)���������������CanUndoDetermines if an edit-control operation can be undone. GetModifyDetermines if the contents of an edit control have been modified. SetModifySets or clears the modification flag for an edit control. GetRectGets the formatting rectangle of an edit control. GetSelGets the starting and ending character positions of the current selection in an edit control. GetLineRetrieves a line of text from an edit control. d���5�| ƀ��R�ہA~��� �(������C�_
�������.�Ѐ������ۀ�������r������{o������EmptyUndoBufferResets (clears) the undo flag of an edit control. LimitTextLimits the length of the text that the user may enter into an edit control. LineFromCharRetrieves the line number of the line that contains the specified character index. LineLengthRetrieves the length of a line in an edit control. LineScrollScrolls the text of a multiple-line edit control. ReplaceSelReplaces the current selection in an edit control with the specified text. �хH�t ��?�R�ہA~���ʂ�р�����P������㌧��������� ������w���������SetPasswordCharSets or removes a password character displayed in an edit control when the user enters text. SetSelSelects a range of characters in an edit control. UndoReverses the last edit-control operation. ClearDeletes (clears) the current selection (if any) in the edit control. CopyCopies the current selection (if any) in the edit control to the Clipboard in CF_TEXT format. �>5�֋P n�}�R�ہA~����Z8ڀ��������#��������CutDeletes (cuts) the current selection (if any) in the edit control, and copies the deleted text to the Clipboard in CF_TEXT format. PasteInserts the data from the Clipboard into the edit control at the current cursor position. Data is inserted only if the Clipboard contains data in CF_TEXT format. BH��) "�2�2�������Windows 3.1 FunctionsP�֋h�R r���R��-~����������r/U������^�豈�����SetReadOnlySets the read-only state of an edit control. GetFirstVisibleLineDetermines the topmost visible line in an edit control. GetPasswordCharRetrieves the password character displayed in an edit control when the user enters text. �Y��1	����������,��CEdit::CanUndoEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')"):h�,�(  �$�������CEdit::CanUndoE�q�, (�2�r�=���~����BOOL CanUndo() const;),���& ��2������3q�͎(  ��������Returns�|��z�1 2�������㌧�����Nonzero if the last edit operation can be undone by a call to the Undo member function; zero if it cannot be undone. 4͎��(  ��������See AlsoV!z��5 :�B����㌧��������CEdit::Undo, EM_CANUNDO���h� �W����1i��������������CEdit::CEditEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")8���(  � �������CEdit::CEdit8���, (��r�=���~����CEdit();)��1�& ��2������4�e�) "��2�������Remarks^+1���3 6�V�2�����������Constructs a CEdit object. See AlsoEe��0 0�*�2����վ��������CEdit::Create �W����1���������������CEdit::ClearEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")9���) "� �2�������CEdit::Clear=���, (�"�r�=���~����void Clear();)��/�& ��2������4�c�) "��2�������Remarksy%/���T v�K�2�����������㌧������Z8ڀ�������Deletes (clears) the current selection (if any) in the edit control. The deletion performed by Clear can be undone by calling the Undo member function. To delete the current selection and place the deleted contents into the Clipboard, call the Cut member function. See Also�fc���f ����2���㯾�����㌧����w������Z8ڀ����#��������CEdit::CanUndo, CEdit::Undo, CEdit::Copy, CEdit::Cut, CEdit::Paste, WM_CLEAR �V��/�1����������/�g�0�CEdit::CopyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")8��g�) "��2�������CEdit::Copy</���, (� �r�=���~����void Copy();)g���& ��2������4���) "��2�������Remarks�n����3 6���2�����������Copies the current selection (if any) in the edit control to the Clipboard in CF_TEXT format. See Also�A�0�N l���2������� �����Z8ڀ����#��������CEdit::Clear, CEdit::Cut, CEdit::Paste, WM_COPY �X����1��������������BCEdit::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')"):0���) "�"�2�������CEdit::Create�W����D X���r�=���~������������BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );)����& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescriptions
��u�f ���R�=��~�=����P�R�����������������������dwStyleSpecifies the edit control's style. rectSpecifies the edit control's size and position. pParentWndSpecifies the edit control's parent window (usually a CDialog or CModalDialog). It must not be NULL. nIDSpecifies the edit control's ID. 4���) "��2�������Remarks��u�_�� d���2���������\僭�������\僭�����@������6�����ؤ"����e��������@������6�����ؤ"����e�����������ؤ"�����You construct a CEdit object in two steps. First, call the CEdit constructor, then call Create, which creates the Windows edit control and attaches it to the CEdit object. When Create executes, Windows sends the WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE, and WM_GETMINMAXINFO messages to the edit control. These messages are handled by default by the OnNcCreate, OnNcCalcSize, OnCreate, and OnGetMinMaxInfo member functions in the CWnd base class. To extend the default message handling, derive a class from CEdit, add a message map to the new class, and override the above message-handler member functions. Override OnCreate, for example, to perform needed initialization for the new class. ����4- (�9�2��������To handle Windows notification messages sent from a CEdit object to its parent, add the following message-map ent_�40�ries to the parent class message map: ��_�$e ���pȘR����{�������������������������ON_COMMAND ON_EN_SETFOCUS ON_EN_KILLFOCUS ON_EN_MAXTEXT ON_EN_CHANGE ON_EN_UPDATE ON_EN_HSCROLL ON_EN_VSCROLL n=4�1 2�z�����6C4�����Apply the following window styles to an edit control: G$�2 4�*�R����~Q�������StyleApplication����P n�;�R����~�����������������������WS_CHILDAlways. WS_VISIBLEUsually. WS_DIABLEDRarely. WS_GROUPTo group controls. WS_TABSTOPTo include edit control in the tabbing order. �K�I8 @�������P�R��������Apply any combination of edit styles to the edit control. Returns�T��. ,������\僭�����Create returns nonzero if initialization is successful; zero if unsuccessful. 4I�(  ��������See AlsoC�B/ .�(�����P� ������CEdit::CEdit �U��15�����������CEdit::CutEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")6B�(  ��������CEdit::Cut;�9, (��r�=���~����void Cut();)�b& ��2������49�) "��2�������Remarks�fbVZ ����2�������㖏����㌧�������� ��������Deletes (cuts) the current selection (if any) in the edit control and copies the deleted text to the Clipboard in CF_TEXT format. The deletion performed by Cut can be undone by calling the Undo member function. To delete the current selection without placing the deleted text into the Clipboard, call the Clear member function. See Also�R�Z ����2����㌧������� ����w������#��������CEdit::Undo, CEdit::Clear, CEdit::Copy, CEdit::Paste, WM_CUT �aV�1-������������CEdit::EmptyUndoBufferEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")C�) "�4�2�������CEdit::EmptyUndoBufferG�	, (�6�r�=���~����void EmptyUndoBuffer();)�G	& ��2������4	{	) "��2�������Remarks�KG	
G \���2�������lW����ý��������Resets (clears) the undo flag of an edit control. The edit control will now be unable to undo the last operation. The undo flag is set whenever an operation within the edit control can be undone. The undo flag is automatically cleared whenever the SetWindowTextor CEdit::SetHandle member function is called. See Also�l{	�Z ����2���㯾�����ý����㌧�����lW��������CEdit::CanUndo, CEdit::SetHandle, CEdit::Undo, CWnd::SetWindowText, EM_EMPTYUNDOBUFFER �Z
^1����������^�{BCEdit::FmtLinesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")<��) "�&�2�������CEdit::FmtLinesV$^�2 4�H�r�=���~������BOOL FmtLines( BOOL bAddEOL );)�
& ��2������K�d
2 4�2�R�=��~Q�=�����ParameterDescription��
8< F�1�R�=��~�=���������bAddEOLSpecifies whether soft line-break characters are to be inserted. A value of TRUE inserts the characters; a value of FALSE removes them. 4d
l) "��2�������Remarks�p85AM h���2�������������dtI�������Sets the inclusion of soft line-break characters on or off within a multiple-line edit control. A soft line break consists of two carriage returns and a linefeed inserted at the end of a line that is broken because of word wrapping. A hard line break consists of one carriage return and a linefeed. Lines that end with a hard l5A�line break are not affected by FmtLines. Windows will only respond if the CEdit object is a multiple-line edit control. FmtLines only affects the buffer returned by GetHandle and the text returned by WM_GETTEXT. It has no impact on the display of the text within the edit control. 4liA) "��2�������Returns[55A�A& �j�2������Nonzero if any formatting occurs; otherwise zero. 5iA�A) "��2�������See Also�@�A{BB T���2����dtI���㵠H���������CEdit::GetHandle, CWnd::GetWindowText, EM_FMTLINES �[�AC1���������CDC'HCEdit::GetHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")={BDC) "�(�2�������CEdit::GetHandleIC�C, (�:�r�=���~����HANDLE GetHandle() const;)DC�C& ��2������4�C�C) "��2�������Remarks�A�CrFG \���2������������������Retrieves a handle to the memory currently allocated for a multiple-line edit control. The handle is a local memory handle and may be used by any of the Local Windows memory functions that take a local memory handle as a parameter. GetHandle is only processed by multiple-line edit controls. Call GetHandle for a multiple-line edit control in a dialog box only if the dialog box was created with the DS_LOCALEDIT style flag set. If the DS_LOCALEDIT style is not set, you will still get a nonzero return value, but you will not be able to use the returned value. 4�C�F) "��2�������Returns��rF�G' ���2������A local memory handle that identifies the buffer that holds the contents of the edit control. If an error occurs, such as sending the message to a single-line edit control, the return value is 0. 5�F�G) "��2�������See Also^(�G'H6 <�P�2����ý��������CEdit::SetHandle, EM_GETHANDLE �Y�G�H1�����������H�HpOCEdit::GetLineEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')");'H�H) "�$�2�������CEdit::GetLine���H�IR r��r�=���~�����������������int GetLine( int nIndex, LPSTR lpBuffer ) const;int GetLine( int nIndex, LPSTR lpBuffer, int nMaxLength ) const;)�H�I& ��2������K�I3J2 4�2�R�=��~Q�=�����ParameterDescription}1�I�LL f�c�R�=��~�=�����������������nIndexSpecifies the line number to retrieve from a multiple-line edit control. Line numbers are zero-based; a value of 0 specifies the first line. This parameter is ignored by a single-line edit control. lpBufferPoints to the buffer that receives a copy of the line. The first word of the buffer must specify the maximum number of bytes that can be copied to the buffer. nMaxLengthSpecifies the maximum number of bytes that can be copied to the buffer. GetLine places this value in the first word of lpBuffer before making the call to Windows. 43J�L) "��2�������Remarks��L�M5 8���2������������Retrieves a line of text from an edit control and places it in lpBuffer. This call is not processed for a single-line edit control. The copied line does not contain a null-termination character. Returns���L�N- (�A�2��������The number of bytes actually copied. The return value is 0 if the line number specified by nIndex is greater then the number of lines in the edit control. 5�M�N) "��2�������See Also�@�NpOB T���2�����ۀ��㵠H���������CEdit::LineLength, CWnd::GetWindowText, EM_GETLINE �^�N�1�����������L��CEdit::GetLineCountEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")pO�pO@pOL�) "�.�2�������CEdit::GetLineCountI���, (�:�r�=���~����int GetLineCount() const;)L���& ��2������4���) "��2�������Remarks������5 8��2������������Retrieves the number of lines in a multiple-line edit control. GetLineCount is only processed by multiple-line edit controls. Returns���v�' �5�2������An integer containing the number of lines in the multiple-line edit control. If no text has been entered into the edit control, the return value is 1. 5����) "��2�������See Also?v��* $�*�2��������EM_GETLINECOUNT �[��v�1h���������v����CEdit::GetModifyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")=���) "�(�2�������CEdit::GetModifyGv���, (�6�r�=���~����BOOL GetModify() const;)��#�& ��2������4��W�) "��2�������Remarksx=#�υ; D�{�2������gBa��������Determines if the contents of an edit control have been modified. Windows maintains an internal flag indicating whether the contents of the edit control have been changed. This flag is cleared when the edit control is first created, and may also be cleared by calling the SetModify member function. Returns�bW�W�& ���2������Nonzero if the edit-control contents have been modified; zero if they have remained unchanged. 5υ��) "��2�������See Also^(W��6 <�P�2����gBa��������CEdit::SetModify, EM_GETMODIFY �Y��t�1����������t���;�CEdit::GetRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')");���) "�$�2�������CEdit::GetRect\*t��2 4�T�r�=���~������void GetRect( LPRECT lpRect ) const;)��4�& ��2������K��2 4�2�R�=��~Q�=�����ParameterDescription�R4��5 :���R�=��~�=�������lpRectPoints to the RECT structure that receives the formatting rectangle. 4�:�) "��2�������Remarks�>���G \�}�2������qo�����S�&��������Gets the formatting rectangle of an edit control. The formatting rectangle is the limiting rectangle of the text, which is independent of the size of the edit-control window. The formatting rectangle of a multiple-line edit control can be modified by the SetRect and SetRectNP member functions. See Also|::�;�B T�t�2����qo�����S�&��������CEdit::SetRect, CEdit::SetRectNP, EM_GETRECT �X��ċ1����������ċ����CEdit::GetSelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')"):;���) "�"�2�������CEdit::GetSelEċC�, (�2�r�=���~����DWORD GetSel() const;)��l�& ��2������4C���) "��2�������Remarks�tl�A�- *���2���������Gets the starting and ending character positions of the current selection (if any) in an edit control. Returns����#�' �w�2������A doubleword value that contains the starting position in the low-order word and the position of the first nonselected character after the end of the selection in the high-order word. 5A�X�) "��2�������See AlsoX"#���6 <�D�2����P��������CEdit::SetSel, EM_GETSEL �[X�<�17���������<�y�{�CEdit::LimitTextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")=��y�) "�(�2�������CEdit::LimitTextY'<�ҏ2 4�N�r�=���~������void LimitText( int nChars = 0 );)y��& ��2������ҏ���KҏW�2 4�2�R�=��~Q�=�����ParameterDescription���?�6 :�e�R�=��~�=�������nCharsSpecifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior. 4W�s�) "��2�������Remarksr?���X ~�5�2�������hF'�����lW�������lW�������Limits the length of the text that the user may enter into an edit control. LimitText limits only the text the user can enter. It has no effect on any text already in the edit control when the message is sent, nor does it affect the length of the text copied to the edit control by the SetWindowText member function in CWnd. If an application uses the SetWindowText function to place more text into an edit control than is specified in the call to LimitText, the user can edit the entire contents of the edit control. 5s��) "��2�������See Alsoa+��{�6 <�V�2�����lW��������CWnd::SetWindowText, EM_LIMITTEXT �^�
�1?���������
�J�X�CEdit::LineFromCharEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")@{�J�) "�.�2�������CEdit::LineFromCharb0
���2 4�`�r�=���~������int LineFromChar( int nIndex = -1 ) const;)J���& ��2������K�� �2 4�2�R�=��~Q�=�����ParameterDescription
���*�6 :���R�=��~�=�������nIndexContains the zero-based index value for the desired character in the text of the edit control, or contains -1. If nIndex is -1, it specifies the current line, i.e., the line that contains the caret. 4 �^�) "��2�������Remarks(�*���/ ,���2����������Retrieves the line number of the line that contains the specified character index. A character index is the number of characters from the beginning of the edit control. This member function is only used by multiple-line edit controls. Returns<	^���3 4��2����������The zero-based line number of the line containing the character index specified by nIndex. If nIndex is -1, the number of the line that contains the first character of the selection is returned. If there is no selection, the current line number is returned. 5����) "��2�������See Alsoa+��X�6 <�V�2����MQ�]��������CEdit::LineIndex, EM_LINEFROMCHAR �[����1������������!���CEdit::LineIndexEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")=X�!�) "�(�2�������CEdit::LineIndex^,���2 4�X�r�=���~������int LineIndex( int nLine = -1 ) const;)!���& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescription������6 :���R�=��~�=�������nLineContains the index value for the desired character in the text of the edit control, or contains -1. If nLine is -1, it specifies the current line, i.e., the line that contains the caret. 4��$�) "��2�������Remarks?��c�/ ,�!�2����������Retrieves the character index of a line within a multiple-line edit control. The character index is the number of characters from the beginning of the edit control to the specified line. This member function is only processed by multiple-line edit controls. Returns��$�%�- (�+�2��������The character index of the line specified in nLine, or -1 if the specified line number is greater then the number of lines in the edit control. 5c�Z�) "��2�������See Alsoa+%���6 <�V�2�����.�Ѐ�������CEdit::LineFromChar, EM_LINEINDEX �\Z�T1����������T�"CEdit::LineLengthEn��T��ableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")>���) "�*�2�������CEdit::LineLength_-T�2 4�Z�r�=���~������int LineLength( int nLine = -1 ) const;)�& ��2������K�e2 4�2�R�=��~Q�=�����ParameterDescription�s8 >���R�=��~�=���������nLineThis parameter specifies the character index of a character in the line whose length is to be retrieved. If this parameter is -1, the length of the current line (the line that contains the caret) is returned, not including the length of any selected text within the line. When LineLength is called for a single-line edit control, this parameter is ignored. 4eD) "��2�������Remarks��A; D���2������MQ�]��������Retrieves the length of a line in an edit control. Use the LineIndex member function to retrieve a character index for a given line number within a multiple-line edit control. ReturnsMD�9 @�)�2������������When LineLength is called for a multiple-line edit control, the return value is the length (in bytes) of the line specified by nLine. When LineLength is called for a single-line edit control, the return value is the length (in bytes) of the text in the edit control. 5A�) "��2�������See Also_)�"6 <�R�2����MQ�]��������CEdit::LineIndex, EM_LINELENGTH �\��1�������������CEdit::LineScrollEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")>"�) "�*�2�������CEdit::LineScrolln6�[8 @�l�r�=���~��������void LineScroll( int nLines, int nChars = 0 );)��& ��2������K[�2 4�2�R�=��~Q�=�����ParameterDescription����8 >��R�=��~�=���������nLinesSpecifies the number of lines to scroll vertically. nCharsSpecifies the number of character positions to scroll horizontally. 4��) "��2�������RemarksT�6 :�=�2�������������Scrolls the text of a multiple-line edit control. This member function is processed only by multiple-line edit controls. The edit control does not scroll vertically past the last line of text in the edit control. If the current line plus the number of lines specified by nLines exceeds the total number of lines in the edit control, the value iss adjusted so that the last line of the edit control is scrolled to the top of the edit-control window. LineScroll can be used to scroll horizontally past the last character of any line. 5�Q) "��2�������See Also=�* $�&�2��������EM_LINESCROLL �WQ1@���������O^CEdit::PasteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")9�O) "� �2�������CEdit::Paste=�, (�"�r�=���~����void Paste();)O�& ��2������4��) "��2�������Remarks����
4 6�e�2�����������Inserts the data from the Clipboard into the edit control at the current cursor position. Data is inserted only if the Clipboard contains data in CF_TEXT format. See Also�A�^N l���2������� ����w������Z8ڀ�������CEdit::Clear, CEdit::Copy, CEdit::Cut, WM_PASTE �\�
�1�����������)�BCEdit::ReplaceSelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")>^)) "�*�2�������CEdit::ReplaceSel\*��2 4�T�r�=���~������void ReplaceSel( LPCSTR lpNewText );))�& ��2������K�@2 4�2�R�=��~Q�=�����ParameterDescription�@^�R��@/ .���R�=��~�=�����lpNewTextPoints to a null-terminated string containing the replacement text. 4@�@) "��2�������Remarks�^�@aBB R���2���������lW���������Replaces the current selection in an edit control with the text specified by lpNewText. Replaces only a portion of the text in an edit control. If you want to replace all of the text, use the CWnd::SetWindowText member function. If there is no current selection, the replacement text is inserted at the current cursor location. See Alsob,�@�B6 <�X�2�����lW��������CWnd::SetWindowText, EM_REPLACESEL �[aBOC1k���������OC�C�JCEdit::SetHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")=�B�C) "�(�2�������CEdit::SetHandleY'OC�C2 4�N�r�=���~������void SetHandle( HANDLE hBuffer );)�CD& ��2������K�CYD2 4�2�R�=��~Q�=�����ParameterDescriptiony=D�E< F�{�R�=��~�=���������hBufferContains a handle to the local memory. This handle must have been created by a previous call to the LocalAlloc Windows function using the LMEM_MOVEABLE flag. The memory is assumed to contain a null-terminated string--if this is not the case, the first byte of the allocated memory should be set to 0. 4YDF) "��2�������Remarks!��E'H; D���2�������dtI�������Sets the handle to the local memory that will be used by a multiple-line edit control. The edit control will then use this buffer to store the currently displayed text instead of allocating its own buffer. This member function is processed only by multiple-line edit controls. Before an application sets a new memory handle, it should use the GetHandle member function to get the handle to the current memory buffer and free that memory using the LocalFree Windows function. ��F�IP n�	�2�����㯾�����ەx�����������SetHandle clears the undo buffer (the CanUndo member function then returns zero) and the internal modification flag (the GetModify member function then returns zero). The edit-control window is redrawn. You can use this member function in a multiple-line edit control in a dialog box only if you have created the dialog box with the DS_LOCALEDIT style flag set. See Also�q'H�JZ ����2���㯾�����dtI����ەx������������CEdit::CanUndo, CEdit::GetHandle, CEdit::GetModify, ::LocalAlloc, ::LocalFree, EM_SETHANDLE �[�IRK1����������RK�K?OCEdit::SetModifyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")=�J�K) "�(�2�������CEdit::SetModifyh0RK�K8 @�`�r�=���~��������void SetModify( BOOL bModified = TRUE );)�K L& ��2������K�KkL2 4�2�R�=��~Q�=�����ParameterDescription�� LIM< F�E�R�=��~�=���������bModifiedA value of TRUE indicates that the text has been modified, and a value of FALSE indicates it is unmodified. By default, the modify flag is set. 4kL}M) "��2�������Remarksd*IM�N: B�U�2�����ەx��������Sets or clears the modification flag for an edit control. The modification flag indicates whether or not the text within the edit control has been modified. It is automatically set whenever the user changes the text. Its value may be retrieved with the GetModify member function. See Also^(}M?O6 <�P�2����ەx��������CEdit::GetModify, EM_SETMODIFY �a�N�O1O����������O �4�CEdit::SetPasswordCharEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")C?O �) "�4�2�������CEdit�O �?O::SetPasswordCharX&�Ox�2 4�L�r�=���~������void SetPasswordChar( char ch );) ���& ��2������Kx��2 4�2�R�=��~Q�=�����ParameterDescription����Á6 :�C�R�=��~�=�������chSpecifies the character to be displayed in place of the character typed by the user. If ch is 0, the actual characters typed by the user are displayed. 4���) "��2�������Remarks�QÁ��T v���2��������������P�R���������Sets or removes a password character displayed in an edit control when the user types text. When a password character is set, that character is displayed for each character the user types. This member function has no effect on a multiple-line edit control. When the SetPasswordChar member function is called, CEdit will redraw all visible characters using the character specified by ch. If the edit control is created with the ES_PASSWORD style, the default password character is set to an asterisk (*). This style is removed if SetPasswordChar is called with ch set to 0. 5��ф) "��2�������See Alsoc-��4�6 <�Z�2����^�豈�������GetPasswordChar, EM_SETPASSWORDCHAR �Yф��1����������������CEdit::SetRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')");4���) "�$�2�������CEdit::SetRectV$��O�2 4�H�r�=���~������void SetRect( LPRECT lpRect );)��x�& ��2������KO�Æ2 4�2�R�=��~Q�=�����ParameterDescription�jx�h�; F���R�=��~�=���������lpRectPoints to the RECT or CRect that specifies the new dimensions of the formatting rectangle. 4Æ��) "��2�������Remarks�Yh�/�: B���2��������B�������Sets the dimensions of a rectangle using the specified coordinates. This member is processed only by multiple-line edit controls. Use SetRect to set the formatting rectangle of a multiple-line edit control. The formatting rectangle is the limiting rectangle of the text, which is independent of the size of the edit-control window. When the edit control is first created, the formatting rectangle is the same as the client area of the edit-control window. By using the SetRect member function, an application can make the formatting rectangle larger or smaller than the edit-control window. 9���h�L f���2������
������B�������B�����If the edit control has no scroll bar, text will be clipped, not wrapped, if the formatting rectangle is made larger than the window. If the edit control contains a border, the formatting rectangle is reduced by the size of the border. If you are adjusting the rectangle returned by the GetRect member function, you must remove the size of the border before passing the rectangle to SetRect. When SetRect is called, the edit control's text is also reformatted and redisplayed. 5/���) "��2�������See Also�h���s ��#�2����`J�?������������*����@[h�����
����S�&��������CRect::CRect, CRect::CopyRect, CRect::operator =, CRect::SetRectEmpty, CEdit::GetRect, CEdit::SetRectNP, EM_SETRECT �[��-�1����������-�j���CEdit::SetRectNPEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")=��j�) "�(�2�������CEdit::SetRectNPX&-�Ž2 4�L�r�=���~������void SetRectNP( LPRECT lpRect );)j��& ��2������KŽ6�2 4�2�R�=��~Q�=�����ParameterDescription�]�Ώ; F���R�=��~�=���������lpRectPoints to a RECT or CRect that specifies the new dimensions of the rectangle. 46��) "��2�������RemarksΏ���}OΏ��. *���2���������Sets the formatting rectangle of a multiple-line edit control. The formatting rectangle is the limiting rectangle of the text, which is independent of the size of the edit-control window. When the edit control is first created, the formatting rectangle is the same as the client area of the edit-control window. By calling the SetRectNP member function, an application can make the formatting rectangle larger or smaller than the edit-control window. If the edit control has no scroll bar, text will be clipped, not wrapped, if the formatting rectangle is made larger than the window. �����> J�y�2��������B���������SetRectNP is identical to the SetRect member function except that the edit-control window is not redrawn. This member is processed only by multiple-line edit controls. See Also�����s ���2����`J�?������������*����@[h�����
����k�:!��������CRect::CRect, CRect::CopyRect, CRect::operator =, CRect::SetRectEmpty, CEdit::GetRect, CEdit::SetRect, EM_SETRECT �X���1�����������J���CEdit::SetSelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')"):��J�) "�"�2�������CEdit::SetSel�Z���E Z���r�=���~�������������void SetSel( DWORD dwSelection );void SetSel( int nStartChar, int nEndChar );)J��& ��2������K��]�2 4�2�R�A��~Q�A�����ParameterDescription(����J b���R�A��~�A���������������dwSelectionSpecifies the starting position in the low-order word and the ending position in the high-order word. If the low-order word is 0 and the high-order word is -1, all the text in the edit control is selected. If the low-order word is -1, any current selection is removed. nStartCharSpecifies the starting position. If nStartChar is 0 and nEndChar is -1, all the text in the edit control is selected. If nStartChar is -1, any current selection is removed. [,]���/ .�X�R�A��~�A�����nEndCharSpecifies the ending position. 4���) "��2�������RemarksA��U�. *�'�2���������Selects a range of characters in an edit control. [REVIEW: NOTE THAT IN WIN 3.1, THE WPARAM PARAMETER IS SIGNIFICANT, INDICATING WHETHER THE CARET SHOULD BE SCROLLED INTO VIEW. THE PROTOTYPE OF THE CEDIT::SETSEL MEMBER FUNCTION WILL BE CHANGED TO REFLECT THIS] See Also{9���B T�r�2������)�����{o��������CEdit::GetSel, CEdit::ReplaceSel, EM_SETSEL �]U�^�1S	���������^���(CEdit::SetTabStopsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")?����) "�,�2�������CEdit::SetTabStops�z^�c�L h���r�=���~����������������BOOL SetTabStops( int nTabStops, LPINT rgTabStops );void SetTabStops();BOOL SetTabStops( int cxEachStop );)����& ��2������Kc���2 4�2�R�?��~Q�?�����ParameterDescription7����X ~���R�?��~�?���������������������nTabStopsSpecifies the number of tab stops contained in rgTabStops. If this parameter is greater then 1, then rgTabStops points to an array of tab stops. rgTabStopsPoints to an array of unsigned integers specifying the tab stops in dialog units. If nTabStops is 1, this parameter points to an unsigned integer containing the distance between all tab stops (in dialog units). cxEachStopSpecifies that tab stops are to be set at every cxEachStop dialog units. 4��B�) "��2�������Remarks�J��N j���2������������
�2a����)�B������Sets the tab stops in a multiple-line edit control. When text is copied to a multiple-line edit control, any taB����b character in the text will cause space to be generated up to the next tab stop. If nTabStops is 0, rgTabStops is ignored and default tab stops are set at every 32 dialog units. This member function is only processed by multiple-line edit controls. SetTabStops does not automatically redraw the edit window. If the application is changing the tab stops for text already in the edit control, it needs to call CWnd::InvalidateRect to redraw the edit window. 4B�) "��2�������ReturnsW1�q& �b�2������Nonzero if the tabs were set; otherwise zero. 5�) "��2�������See Also�Fq(< H���2������)�B���������::GetDialogBaseUnits, CWnd::InvalidateRect, EM_SETTABSTOPS �V��1������������QCEdit::UndoEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")8(�) "��2�������CEdit::Undo<�#, (� �r�=���~����BOOL Undo();)�L& ��2������4#�) "��2�������RemarksOL�; D�)�2��������������Use to undo the last edit-control operation. An undo operation can also be undone. For example, you can restore deleted text with the first call to Undo, and remove the text again with a second call to Undo as long as there is no intervening edit operation. Returns����' ���2������For a single-line edit control, the return value is always nonzero. For a multiple-line edit control, the return value is nonzero if the undo operation is successful, or zero if the undo operation fails. 5��) "��2�������See AlsoW!�Q6 <�B�2���㯾���������CEdit::CanUndo, EM_UNDO �Z��1�����������class CFontEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_003')")8Q) "��2�������class CFont8�L) "��2�������Description�Q�	Q p���2������������$����㯇f�����The CFont class encapsulates a Windows graphical design interface (GDI) font and provides member functions for manipulating the font. To use a CFont object, construct a CFont object and attach a Windows font to it with CreateFont or CreateFontIndirect, and then use the object's member functions to manipulate the font. ;L)
) "�$�2�������Public MembersE�	n
) "�8�2�������Construction/Destructionc))
�
: D�R�R�݀?���|���������CFontConstructs a CFont object. ;n
) "�$�2�������Initialization��
V z�s�R���#~��㯇f�����������$���������CreateFontIndirectInitializes a CFont object with the characteristics given in a LOGFONT structure. CreateFontInitializes a CFont with the specified characteristics. 7R) "��2�������Operations�U�A R���R�e��~�e�n�����������FromHandleReturns a pointer to a CFont object when given a Windows HFONT. �WRp
14���������p
�
�CFont::CFontEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFont')")8��
(  � �������CFont::CFont8p
�
, (��r�=���~����CFont();)�
	& ��2������4�
=) "��2�������Remarks��	"L f�3�2��������$����㯇f��������Constructs a CFont object. The resulting object must be initialized with CreateFont or CreateFontIndirect before it can be used. See Also�G=�B T���2���㯇f�����$���������CFont::CreateFontIndirect, CFont::CreateFont, ::EnumFonts �\"D@1.���������D@�@��CFont::CreateFontEnableButton("up")�D@�;ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFont')")>��@) "�*�2�������CFont::CreateFont�$D@'B� ЀI�r�=���~��������������������������������BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, const char FAR* lpFacename );)�@PB& ��2������K'B�B2 4�2�R���y~Q�������ParameterDescription�yPBCC/ .���R���y~�������nHeightSpecifies the desired height (in logical units) of the font. The font height can be specified in three ways. C�B�C2 4�"�R�ׂ�~Q�������HeightResultb1CC�D1 0�c�R�ׂ�~����������Greater than 0Height is transformed into device units and matched against the cell height of the available fonts. Equal to 0A reasonable default size is used. Less than 0Height is transformed into device units and the absolute value is matched against the character height of the available fonts. �V�C�GC T���R���y~����������������The absolute value of the nHeight parameter must not exceed 16,384 after it is converted to device units. For all height comparisons, the font mapper looks for the largest font that does not exceed the requested size. Then, if there is no such font, it looks for the smallest font available. nWidthSpecifies the average width (in logical units) of characters in the font. If nWidth is 0, the aspect ratio of the device will be matched against the digitization aspect ratio of the available fonts to find the closest match, which is determined by the absolute value of the difference. �L�DJ8 >���R���y~�����������nEscapementSpecifies the angle (in 0.1-degree units) between the escapement vector and the x-axis of the display surface. The escapement vector is the line through the origins of the first and last characters on a line. The angle is measured counterclockwise from the x-axis. nOrientationSpecifies the angle (in 0.1-degree units) between the baseline of a character and the x-axis. The angle is measured counterclockwise from the x-axis for coordinate systems in which the y-direction is down, and clockwise from the x-axis for coordinate systems in which the y-direction is up. ���G�J6 :�A�R���y~���������nWeightSpecifies the font weight (in inked pixels per 1000). Although nWeight can be any integer value from 0 to 1000, the common values are as follows: DJK2 4�$�R���~
�������ConstantValue��J�L� ��R���~���������������������������������������������������������������FW_DONTCARE0 FW_THIN100 FW_EXTRALIGHT200 FW_ULTRALIGHT200 FW_LIGHT300 FW_NORMAL400 FW_REGULAR400 FW_MEDIUM500 FW_SEMIBOLD600 FW_DEMIBOLD600 FW_BOLD700 FW_EXTRABOLD800 FW_ULTRABOLD800 FW_BLACK900 FW_HEAVY900 QKOM h�	�R���y~����������������������These values are approximate; the actual appearance depends on the typeface. Some fonts have only FW_NORMAL, FW_REGULAR, and FW_BOLD weights. If FW_DONTCARE is specified, a default weight is used. bItalicSpecifies whether the font is italic. bUnderlineSpecifies whether the font is underlined. cStrikeOutSpecifies whether characters in the font are struck out. Specifies a strikeout font if set to a nonzero value. nCharSetSpecifies the font's character set. The following values are predefined: D�L`O2 4�$�R�G�_}Q�G�����ConstantValue��Oe�` ��3�R�G�_}�G�����������������������������ANSI_CHARSET0 DEFAULT_CHARSET1 SYMBOL_CHARSET2 SHIF`Oe��TJIS_CHARSET128 HANGEUL_CHARSET129 CHINESEBIG5_CHARSET136 OEM_CHARSET255 
�`Oo�= H���R���y~��������������The OEM character set is system-dependent. Fonts with other character sets may exist in the system. An application that uses a font with an unknown character set must not attempt to translate or interpret strings that are to be rendered with that font. Instead, the strings should be passed directly to the output device driver. The font mapper does not use the DEFAULT_CHARSET value. An application can use this value to allow the name and size of a font to fully describe the logical font. If a font with the specified name does not exist, a font from any character set can be substituted for the specified font. To avoid unexpected results, applications should use the DEFAULT_CHARSET value sparingly. &�e���0 .���R���y~�������nOutPrecisionSpecifies the desired output precision. The output precision defines how closely the output must match the requested font's height, width, character orientation, escapement, and pitch. It can be any one of the following values: ��o���Y ��-�p��R������������������������OUT_CHARACTER_PRECIS OUT_DEFAULT_PRECIS OUT_DEVICE_PRECIS OUT_RASTER_PRECIS OUT_STRING_PRECIS OUT_STROKE_PRECIS OUT_TT_PRECIS �:��	�K d�u�R���y~����������������Applications can use the OUT_DEVICE_PRECIS, OUT_RASTER_PRECIS, and OUT_TT_PRECIS values to control how the font mapper chooses a font when the system contains more than one font with a given name. For example, if a system contains a font named Symbol in raster and TrueType form, specifying OUT_TT_PRECIS forces the font mapper to choose the TrueType version. (Specifying OUT_TT_PRECIS forces the font mapper to choose a TrueType font whenever the specified font name matches a device or raster font, even when there is no TrueType font of the same name.) �����0 .���R���y~�������nClipPrecisionSpecifies the desired clipping precision. The clipping precision defines how to clip characters that are partially outside the clipping region. It can be any one of the following values: ��	��Y ���p��R������������������������CLIP_CHARACTER_PRECIS CLIP_DEFAULT_PRECIS CLIP_ENCAPSULATE CLIP_LH_ANGLES CLIP_MASK CLIP_STROKE_PRECIS CLIP_TT_ALWAYS )���S t���R���y~��������������������To use an embedded read-only font, an application must specify CLIP_ENCAPSULATE. To achieve consistent rotation of device, TrueType, and vector fonts, an application can use the OR operator to combine the CLIP_LH_ANGLES value with any of the other nClipPrecision values. If the CLIP_LH_ANGLES bit is set, the rotation for all fonts depends on whether the orientation of the coordinate system is left-handed or right-handed. (For more information about the orientation of coordinate systems, see the description of the nOrientation parameter.) If CLIP_LH_ANGLES is not set, device fonts always rotate counterclockwise, but the rotation of other fonts is dependent on the orientation of the coordinate system. ���0 .���R���y~�������nQualitySpecifies the font's output quality, which defines how carefully GDI must attempt to match the logical-font attributes to those of an actual physical font. It can be one of the following values: C�Z�2 4�"�R����}Q�������ValueMeaningf ���F Z�A�R����}�����������������DEFAULT_QUALITYAppearance of the font does not matter. DRAFT_QUALITYAppearance of the font is less important than when PROOF_QUALITY is used. For GDI raster fonts, scaling is enabled. Bold, italic, underline, and strikeout fonts are synthesized if necessary. PROOF_QUALITYCharacter quality of the font is more important than exact matchingZ���� of the logical-font attributes. For GDI raster fonts, scaling is disabled and the font closest in size is chosen. Bold, italic, underline, and strikeout fonts are synthesized if necessary. ��Z���0 .�C�R���y~�������nPitchAndFamilySpecifies the pitch and family of the font. The two low-order bits specify the pitch of the font and can be any one of the following values: q5���< H�j�p��R������������DEFAULT_PITCH FIXED_PITCH VARIABLE_PITCH ����5 8���R���y~����������Applications can set bit 2 (0x04) of the nPitchAndFamily parameter to choose a TrueType font. The four high-order bits of the member specify the font family and can be one of the following values: C�S�2 4�"�R���~Q�������ValueMeaning<����P n���R���~�����������������������FF_DECORATIVENovelty fonts. Old English, for example. FF_DONTCAREDon't care or don't know. FF_MODERNFonts with constant stroke width (fixed-pitch), with or without serifs. Fixed-pitch fonts are usually modern. Pica, Elite, and Courier New are examples. FF_ROMANFonts with variable stroke width (proportionally spaced) and with serifs. Times New Roman and Century Schoolbook are examples. FF_SCRIPTFonts designed to look like handwriting. Script and Cursive are examples. �wS�5�/ .���R���~�������FF_SWISSFonts with variable stroke width (proportionally spaced) and without serifs. MS Sans Serif is an example. �_����U x���R���y~����������������������An application can specify a value for nPitchAndFamily by using the Boolean OR operator to join a pitch constant with a family constant. Font families describe the look of a font in a general way. They are intended for specifying fonts when the exact typeface desired is not available. lpFacenameA CString or pointer to a null-terminated string that specifies the typeface name of the font. The length of this string must not exceed 30 characters. The Windows EnumFonts function can be used to enumerate all currently available fonts. If lpFacename is NULL, GDI uses a default typeface. 45��) "��2�������Remarks�`����M h���2��������������������Initializes a CFont object with the specified characteristics. The font can subsequently be selected as the font for any device context. The CreateFont function does not create a new Windows GDI font. It merely selects the closest match from the fonts available in GDI's pool of physical fonts. Applications can use the default settings for most of these parameters when creating a logical font. The parameters that should always be given specific values are nHeight and lpszFace. If nHeight and lpszFace are not set by the application, the logical font that is created is device-dependent. �����@ N�u�2���������y���������Fonts created by using the CreateFont function must be selected out of any device context in which they were used and then removed by using the DeleteObject function. ReturnsZ+���/ .�V�2���������TRUE if successful; otherwise FALSE. 5��S�) "��2�������See Also|@���< H���2���㯇f����������CFont::CreateFontIndirect, ::CreateFont, ::EnumFonts �dS�d�1���������d����CFont::CreateFontIndirectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFont')")F����) "�:�2�������CFont::CreateFontIndirectg5d��2 4�j�r�=���~������BOOL CreateFontIndirect( LPLOGFONT lpLogFont );)��:�& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescription�d:�*5 :���R�=��~�=�������lpLogFontPoints to a LOGFONT structure that defines the character��*��istics of the logical font. 4��^) "��2�������Remarks�j* X ~���2���������������`.�����[�����Initializes a CFont object with the characteristics given in a LOGFONT structure pointed to by lpLogFont. The font can subsequently be selected as the current font for any device. This font has the characteristics specified in the LOGFONT structure. When the font is selected by using the CDC::SelectObject or CMetaFileDC::SelectObject functions, GDI's font mapper attempts to match the logical font with an existing physical font. If it fails to find an exact match for the logical font, it provides an alternative whose characteristics match as many of the requested characteristics as possible. ��^@ N�}�2���������y���������Fonts created with the CreateFontIndirect function must be selected out of any device context in which they were used and then removed by using the DeleteObject function. ReturnsZ+ x/ .�V�2���������TRUE if successful; otherwise FALSE. 5�) "��2�������See Also�~x�Z ����2�����$������`.�����`.�����[��������CFont::CreateFont, CDC::SelectObject, CDC::SelectObject, CMetaFileDC::SelectObject, ::CreateFontIndirect �\�1z���������P�
CFont::FromHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFont')")>�P) "�*�2�������CFont::FromHandle`.�2 4�\�r�=���~������static CFont* FromHandle( HFONT hFont );)P�& ��2������K�$2 4�2�R�=��~Q�=�����ParameterDescriptiond/��5 :�^�R�=��~�=�������hFontAn HFONT handle to a Windows font. 4$�) "��2�������Remarks5���	E X���2����������������Returns a pointer to a CFont object when given an HFONT handle to a Windows GDI font object. If a CFont object is not already attached to the handle, a temporary CFont object is created and attached. This temporary CFont object is valid only until the next time the application has idle time in its event loop, at which time all temporary graphic objects are deleted. Another way of saying this is that the temporary object is only valid during the processing of one window message. 4�%
) "��2�������ReturnstB�	�
2 4���2����������A pointer to a CFont object if successful; otherwise NULL. �^%
(1����������(d�Fclass CFrameWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')")<�
d) "�&�2�������class CFrameWnd8(�) "��2�������Description�adDG \���2����������㓑7��������The CFrameWnd class provides the functionality of a Windows (SDI) overlapped or pop-up frame window. To create a useful frame window for your application, derive a class from CFrameWnd. Add member variables to the derived class to store data specific to your application. Implement message-handler member functions and a message map in the derived class to specify what happens when messages are directed to the window. You create a frame window in two steps. First, invoke the constructor, then call the Create member function to create the frame window and attach it to the CFrameWnd object. P���@^ ����2�����\僭�������I`t�������������Construction can be a one-step process in a derived class. Write a constructor for the derived class and call Create from  within the constructor. When the user terminates your frame window, destroy the CFrameWnd object or call the DestroyWindow member function, which CFrameWnd inherits from class CWnd, to remove the window and destD�@�
roy its data structures. If you allocate any memory in the CFrameWnd object, override the CFrameWnd destructor to dispose of the allocations. ��D�AI `�k�2����������I`t��������CFrameWnd objects should be allocated on the heap with the new operator. Do not use the C++ delete operator to destroy the window. Use DestroyWindow instead. See Alsox0�@BH `�`�2����+����;c-ڀ����^I�������CWnd, CMDIFrameWnd, CMDIChildWnd Q!�AgB0 0�B�2����������Public MembersData Members��BACB R�1�R�A��~�A�^O_����������rectDefaultPass this static CRect as a parameter when creating a CFrameWnd object to allow Windows to choose the window's size and position. EgB�C) "�8�2�������Construction/Destruction	�AC�DP n�s�R�a��~�a��8��������W�nA��������CFrameWndConstructs a CFrameWnd object. ~CFrameWndDestroys a CFrameWnd object and the frame window, frees the accelerator table, and posts an application quit message. ;�C�D) "�$�2�������Initialization���D�EJ b�-�R�́O~��㓑7���������{T�6������CreateCreates and initializes the Windows frame window associated with the CFrameWnd object. LoadAccelTableLoads an accelerator table. >�D�E) "�*�2�������Protected Members9�E!F) "� �2�������Data Members�R�E�F5 :���R���g~���+a�ŀ�����m_hAccelTableContains the command accelerator table for this frame window. �c!F<G1����������<G|GCICFrameWnd::CFrameWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFrameWnd')")@�F|G(  �0�������CFrameWnd::CFrameWnd<<G�G, (� �r�=���~����CFrameWnd();)|G�G& ��2������4�GH) "��2�������Remarks��G�H? N���2�������\僭��������Constructs a CFrameWnd object. The frame window is not created until the Create member function is called. See Alsop4HCI< H�h�2���㓑7�����W�nA������CFrameWnd::Create, CFrameWnd::~CFrameWnd �d�H�I1 ����������IJ	LCFrameWnd::~CFrameWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFrameWnd')")BCIJ) "�2�2�������CFrameWnd::~CFrameWndE�I_J, (�2�r�=���~����virtual ~CFrameWnd();)J�J& ��2������4_J�J) "��2�������Remarks���J�K: B�I�2�������������Destroys a CFrameWnd object and the frame window, frees the accelerator table if loaded, and posts a WM_QUITmessage to terminate the application. See Alsoo3�J	L< H�f�2���㓑7������8������CFrameWnd::Create, CFrameWnd::CFrameWnd �`�K�L1�	����������L�L�CFrameWnd::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFrameWnd')")>	L�L) "�*�2�������CFrameWnd::Create��L�MQ p���r�=���~����������������BOOL Create( LPCSTR lpszClassName, LPCSTR lpszWindowName, DWORD dwStyle = WS_OVERLAPPEDWINDOW, const RECT& rect = rectDefault, CWnd* pParentWnd = NULL, LPCSTR lpszMenuName = NULL );)�LN& ��2������K�MbN2 4�2�R���{~Q�������ParameterDescription9�N��j ����R���{~������e�z�������������������6C4�����lpszClassNamePoints to a null-terminated character string that names the Windows class. The class name can be any name registered with the AfxRegisterWndClass function or the RegisterClass Windows function. If NULL, uses the predefined default CFrameWnd attributes. lpszWindowNamePoints to abN��	L null-terminated character string that represents the window name. Used as text for the title bar. dwStyleSpecifies the window style attributes. 6�bN݂^ ����R���{~�������������������������rectSpecifies the size and position of the window. The rectDefault value allows Windows to specify the size and position of the new CFrameWnd object. pParentWndSpecifies the parent window of this frame window. This parameter should be NULL for top-level frame windows. lpszMenuNameIdentifies the name of the menu resource to be used with the window. Use MAKEINTRESOURCE if the menu has an integer ID instead of a string. This parameter can be NULL. 4���) "��2�������Remarks�o݂҄R r���2���������\僭������������Construct a CFrameWnd object in two steps. First invoke the constructor, which constructs the CFrameWnd object, then call Create, which creates the Windows frame window and attaches it to the CFrameWnd object. Create initializes the window's class name and window name and registers default values for its style, parent, and associated menu. Returnsl=�>�/ .�z�2���������TRUE if initialization is successful; otherwise FALSE. 5҄s�) "��2�������See Also�K>��H `���2�����8����W�nA������������CFrameWnd::CFrameWnd, CFrameWnd::~CFrameWnd, CWnd::CreateEx �hs���15�������������CFrameWnd::LoadAccelTableEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFrameWnd')")F��) "�:�2�������CFrameWnd::LoadAccelTablep>��U�2 4�|�r�=���~������BOOL LoadAccelTable( const char FAR* lpAccelTableName );)�~�& ��2������KU�ɇ2 4�2�R�ׁE~Q�������ParameterDescription��~���6 :��R�ׁE~���������lpAccelTableNameIdentifies the name of the accelerator resource. Use MAKEINTRESOURCE if the resource is identified with an integer ID. 4ɇ��) "��2�������Remarks4�����5 8���2������������Loads the specified accelerator table. The member function stores the table handle in m_hAccelTable. Only one table may be loaded at a time. Accelerator tables loaded from resources are freed automatically when the application terminates. Returns}N��r�/ .���2���������TRUE if the accelerator table was successfully loaded; otherwise FALSE. 5����) "��2�������See AlsoBr��* $�0�2��������::LoadAccelerators �g����1������������Ƌ��CFrameWnd::m_hAccelTableEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFrameWnd')")E�Ƌ) "�8�2�������CFrameWnd::m_hAccelTable4����) "��2�������Remarks�MƋ��? L���2���������H��Հ����A protected variable of type HANDLE, this data member specifies the command accelerator table for the frame window. If the frame window doesn't have an accelerator table, this data member's value is NULL. The default PreTranslateMessage function uses the accelerator table to translate the appropriate keys into commands. �e���1`����������_���CFrameWnd::rectDefaultEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFrameWnd')")C��_�) "�4�2�������CFrameWnd::rectDefault4���) "��2�������Remarks��_�O�4 6��2�����������Pass this static CRect as a parameter when creating a window to allow Windows to choose the window's size and position. See Also?����* $�*�2��������::CW_USEDEFAULT �_O�*�1�	���������*�g���class CGdiObjectEnableButton("up");ChangeButtonBinding("up", "JI��*���(`mfc10wh.hlp', `class_003')")=��g�) "�(�2�������class CGdiObject8*���) "��2�������Description�Cg�(�F Z���2�����������������The CGdiObject class provides a base class for various kinds of Windows graphical design interface (GDI) objects such as bitmaps, regions, brushes, pens, palettes, and fonts. You never create a CGdiObject directly. Rather, you create an object from one of its derived classes, such as CPen or CBrush. See Also�H����l ����2����VOܙ�����Q������������4K2+���������v������CBitmap, CBrush, CFont, CPalette, CPen, CRgn Q!(�-�0 0�B�2����������Public MembersData Members����_ ����R�=��~�=����5��������������������m_hObjectA HANDLE containing the HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN, or HFONT attached to this object. E-�P�) "�8�2�������Construction/Destruction�d��O n���R�Y��~�Y�4-����������@W�,��������CGdiObjectConstructs a CGdiObject object. ~CGdiObjectDestroys a CGdiObject object. 7P�:�) "��2�������Operations����� 
�5�R��/~�������������������=`��������uE�v��������GH؍����������y���������GetSafeHandleReturns m_hObject unless this is NULL, in which case NULL is returned. FromHandleReturns a pointer to a CGdiObject object given a handle to a Windows GDI object. AttachAttaches a Windows GDI object to a CGdiObject object. DetachDetaches a Windows GDI object from a CGdiObject object and returns a handle to the Windows GDI object. DeleteObjectDeletes the Windows GDI object attached to the CGdiObject object from memory by freeing all system storage associated with the object. ��:���x ��
�R��/~���rS�������S�4�����gF��������u9�T������X��~������DeleteTempMapDeletes any temporary CGdiObject objects created by FromHandle. GetObjectFills a buffer with data that describes the Windows GDI object attached to the CGdiObject object. CreateStockObjectRetrieves a handle to one of the Windows predefined stock pens, brushes, or fonts. UnrealizeObjectResets the origin of a brush or resets a logical palette. �b����1!���������������CGdiObject::AttachEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")>����(  �,�������CGdiObject::AttachV$���2 4�H�r�=���~������BOOL Attach( HANDLE hObject );)��@�& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescription�R@��A R���R�=��~�=�����������hObjectA HANDLE to a Windows GDI object (for example, HPEN or HBRUSH). 4��R�) "��2�������RemarksxE���3 6���2�����������Attaches a Windows GDI object to a CGdiObject object. Returnsh9R�2�/ .�r�2���������TRUE if attachment is successful; otherwise FALSE. 5��g�) "��2�������See AlsoJ2���0 0�4�2����GH؍������CGdiObject::Detach �fg�H�1y���������H����CGdiObject::CGdiObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")C����) "�4�2�������CGdiObject::CGdiObject=H���, (�"�r�=���~����CGdiObject();)����& ��2������4��%�) "��2�������Remarks����+F Z�i�2�����������������Constructs a CGdiObject object. You never create a CGdiObject directly. Rather, you create an object from one of its derived classes, such as C%�+��Pen or CBrush. See Also�H%��l ����2����������Q������������VOܙ����v����4K2+������CPen, CBrush, CFont, CBitmap, CRgn, CPalette �g+w1����������w�nCGdiObject::~CGdiObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")D��) "�6�2�������CGdiObject::~CGdiObjectFw, (�4�r�=���~����virtual ~CGdiObject();)�*& ��2������4^) "��2�������Remarks�>*�^ ��}�2���������y����������������������Destructor for the CGdiObject class. Calls DeleteObject to delete the attached Windows GDI object and then deallocates the CGdiObject object. If you don't want to delete the attached Windows GDI object when deleting a CGdiObject object, call Detach before deleting the CGdiObject object. See Alsot8^n< H�p�2����GH؍������y�������CGdiObject::Detach, CGdiObject::DeleteObject �m�1�	���������V�CGdiObject::CreateStockObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")J!nV) "�B�2�������CGdiObject::CreateStockObject]+�2 4�V�r�=���~������BOOL CreateStockObject( int nIndex );)V�& ��2������K�'2 4�2�R�=��~Q�=�����ParameterDescription�j��/ .���R�=��~�=�����nIndexA constant specifying the type of stock object desired. It can be one of the following values: C'2 4�"�R�Ӄm}Q�������ValueMeaning)��,	� �3�R�Ӄm}�������������������������������������������������������BLACK_BRUSHBlack brush. DKGRAY_BRUSHDark gray brush. GRAY_BRUSHGray brush. HOLLOW_BRUSHHollow brush. LTGRAY_BRUSHLight gray brush. NULL_BRUSHNull brush. WHITE_BRUSHWhite brush. BLACK_PENBlack pen. NULL_PENNull pen. WHITE_PENWhite pen. ANSI_FIXED_FONTANSI fixed system font. ANSI_VAR_FONTANSI variable system font. DEVICE_DEFAULT_FONTDevice-dependent font. �?@ N���R�Ӄm}���������������OEM_FIXED_FONTOEM-dependent fixed font. SYSTEM_FONTThe system font. By default, Windows uses the system font to draw menus, dialog-box controls, and other text. In Windows versions 3.0 and later, the system font is proportional width; earlier versions of Windows use a fixed-width system font. SYSTEM_FIXED_FONTThe fixed-width system font used in Windows prior to version 3.0. This object is available for compatibility with earlier versions of Windows. �p,	�/ .���R�Ӄm}�������DEFAULT_PALETTEDefault color palette. This palette consists of the 20 static colors in the system palette. 4?) "��2�������RemarksZ �l
: B�A�2�������������Retrieves a handle to one of the predefined stock Windows GDI pens, brushes, or fonts, and attaches the GDI object to the CGDIObject object. Call this function with one of the derived classes that corresponds to the Windows GDI object type, such as CPen for a stock pen. ReturnsvD�
2 4���2����������Returns TRUE if the function is successful; otherwise FALSE. 5l
) "��2�������See Also�P�
�T x���2������ˀ���Z!B����|�������������CPen::CPen, CBrush::CBrush, CFont::CFont, CPalette::CPalette �hT1b���������T��BCGdiObject::DeleteObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")E��) "�8�2�������CGdiObject::DeleteObjectDT�, (�0�r�=���~����void DeleteObject();)�@& ��2�����@���4�F@) "��2�������Remarks�@MB: B���2�������������Deletes the attached Windows GDI object from memory by freeing all system storage associated with the Windows GDI object. The storage associated with the C++ CGdiObject object is not affected by this call. An application should not call DeleteObject on a CGdiObject object that is currently selected into a device context. When a pattern brush is deleted, the bitmap associated with the brush is not deleted. The bitmap must be deleted independently. 5F@�B) "��2�������See AlsoJMB�B0 0�4�2����GH؍������CGdiObject::Detach �i�BfC1����������fC�COFCGdiObject::DeleteTempMapEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")F�B�C) "�:�2�������CGdiObject::DeleteTempMapL fC�C, (�@�r�=���~����static void DeleteTempMap();)�C!D& ��2������4�CUD) "��2�������Remarks�$!D�Ed ��I�2��������1zP������S�4��������������Called automatically by the CWinApp idle time handler, DeleteTempMap deletes any temporary CGdiObject objects created by FromHandle. DeleteTempMap detaches the Windows GDI object attached to a temporary CGdiObject object before deleting the CGdiObject object. See Alsor6UDOF< H�l�2����GH؍����=`������CGdiObject::Detach, CGdiObject::FromHandle �b�E�F1�����������F!GrICGdiObject::DetachEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")?OF!G) "�,�2�������CGdiObject::Detach@�FaG, (�(�r�=���~����HANDLE Detach();)!G�G& ��2������4aG�G) "��2�������Remarks�v�GgH3 6���2�����������Detaches a Windows GDI object from a CGdiObject object and returns a handle to the Windows GDI object. Returns�Z�G�H2 4���2����������A HANDLE to the Windows GDI object detached, or NULL if no GDI object is attached. 5gH(I) "��2�������See AlsoJ�HrI0 0�4�2����uE�v������CGdiObject::Attach �f(I	J1
���������	JLJ(OCGdiObject::FromHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")CrILJ) "�4�2�������CGdiObject::FromHandleh6	J�J2 4�l�r�=���~������static CGdiObject* FromHandle( HANDLE hObject );)LJ�J& ��2������K�J(K2 4�2�R�=��~Q�=�����ParameterDescriptione0�J�K5 :�`�R�=��~�=�������hObjectA HANDLE to a Windows GDI object. 4(K�K) "��2�������Remarks>��K�M@ N���2���������������Returns a pointer to a CGdiObject object given a handle to a Windows GDI object. If a CGdiObject object is not already attached to the Windows GDI object, a temporary CGdiObject object is created and attached. This temporary CGdiObject object is only valid until the next time the application has idle time in its event loop, at which time all temporary graphic objects are deleted. Another way of saying this is that the temporary object is only valid during the processing of one window message. 4�K3N) "��2�������ReturnsoC�M�N, (���2��������A pointer to a CGdiObject that may be temporary or permanent. 53N�N) "��2�������See AlsoQ!�N(O0 0�B�2����rS������CGdiObject::DeleteTempMap �e�N�O1�����������O���CGdiObject::GetObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")B(O�) "�2�2�������CGdiObject::GetObject�O�(Or:�O~�8 @�t�r�=���~��������int GetObject( int nCount, LPSTR lpObject ) const;)���& ��2������K~��2 4�2�R�=��~Q�=�����ParameterDescription����΁> J�=�R�=��~�=�����������nCountSpecifies the number of bytes to copy into the lpObject buffer. lpObjectPoints to a user-supplied buffer that is to receive the information. 4��) "��2�������Remarks��΁��' �o�2������Fills a buffer with data that defines a specified object. The function retrieves a data structure whose type depends on the type of graphic object, as shown by the following list: H�(�2 4�,�R��Q������ObjectBuffer type�v���u ����R��������������������������������������CPenLOGPEN CBrushLOGBRUSH CFontLOGFONT CBitmapBITMAP CPaletteint CRgnNot supported V�(�i�] �������������w�������������e�>�����If the object is a CBitmap object, GetObject returns only the width, height, and color format information of the bitmap. The actual bits can be retrieved by using CBitmap::GetBitmapBits. If the object is a CPalette object, GetObject retrieves an integer that specifies the number of entries in the palette. The function does not retrieve the LOGPALETTE structure that defines the palette. An application can get information on palette entries by calling CPalette::GetPaletteEntries. 3���(  ��������Returns`;i���% �v������The number of bytes retrieved, or 0 if an error occurs. 4��0�(  ��������See Alsoz?����; F�~�����w������e�>������CBitmap::GetBitmapBits, CPalette::GetPaletteEntries �i0�D�1����������D���݊CGdiObject::GetSafeHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")E����(  �:�������CGdiObject::GetSafeHandleM!D�ֈ, (�B�r�=���~����HANDLE GetSafeHandle() const;)����& ��2������4ֈ3�) "��2�������Remarks"���U�L f���2�������������������Returns m_hObject unless this is NULL, in which case NULL is returned. This is part of the general handle interface paradigm and is useful when NULL is a valid or special value for a handle. Returns�V3�݊2 4���2����������A HANDLE to the attached Windows GDI object, or NULL if no object is attached. �kU�y�1N���������y����CGdiObject::UnrealizeObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")H݊��) "�>�2�������CGdiObject::UnrealizeObjectGy��, (�6�r�=���~����BOOL UnrealizeObject();)��1�& ��2������4�e�) "��2�������Remarks��1�_�d ��-�2������������������������4�����Resets the origin of a brush or resets a logical palette. While UnrealizeObject is a member function of the CGdiObject class, it should be invoked only on CBrush or CPalette objects. For CBrush objects, UnrealizeObject directs the system to reset the origin of the given brush the next time it is selected into a device context. If the object is a CPalette object, UnrealizeObject directs the system to realize the palette as though it had not previously been realized. The next time the application calls the CDC::RealizePalette function for the specified palette, the system completely remaps the logical palette to the system palette. �^e��L f���2���������6o/�����������The UnrealizeObject function should not be used with stock objects. The Unrealize_��݊Object function must be called whenever a new brush origin is set (by means of the CDC::SetBrushOrg function). The UnrealizeObject function must not be called for the currently selected brush or currently selected palette of any display context. ReturnsZ+_�o�/ .�V�2���������TRUE if successful; otherwise FALSE. 5���) "��2�������See Alsom1o��< H�b�2������4����6o/�������CDC::RealizePalette, CDC::SetBrushOrg �e����1'���������������CGdiObject::m_hObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CGdiObject')")B���) "�2�2�������CGdiObject::m_hObject4���) "��2�������Remarks�r����P p���2��������������������A HANDLE containing the HBITMAP, HRGN, HBRUSH, HPEN, HPALETTE, or HFONT attached to this object. �]�m�1����������m���3class CListBoxEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')");����) "�$�2�������class CListBox8m���) "��2�������Descriptiona2��A�/ ,�e�2����������The CListBox class provides the functionality of a Windows list box. A list box displays a list of items, such as filenames, that the user can view and select. In a single-selection list box, the user can only select one item. In a multiple-selection list box, a range of items can be selected. When the user selects an item, it is highlighted and the list box sends a notification message to the parent window. The list box itself automatically displays horizontal or vertical scroll bars if the list within the box is too large for the list-box window. S�����k ����2���������N��À��������\僭������������You create a list-box control in two steps. First, call the constructor CListBox to construct the CListBox object, then call the Create member function to create the Windows list-box control and attach it to the CListBox object. Construction can be a one-step process in a class derived from CListBox. Write a constructor for the derived class and call Create from within the constructor. If you want to handle the Windows notification messages sent by a CListBox object to its parent (usually a class derived from CDialog or CModalDialog), add the appropriate message-map entries and message-handler member functions to the parent class to handle the messages you want to process. Potential message-map entries are: �rA�\�V |���pȘR����{�������������������ON_COMMAND ON_LBN_DBLCLK ON_LBN_ERRSPACE ON_LBN_KILLFOCUS ON_LBN_SELCHANGE ON_LBN_SETFOCUS K�����Q p�����������������������If you create a CListBox object within a dialog box (through a dialog resource), the CListBox is automatically destroyed when the user closes the dialog box. If you create a CListBox object within a window, you may also need to destroy it. If you create the CListBox object on the stack, it is destroyed automatically. If you create the CListBox object on the heap by using the new function, you must call delete on the object to destroy it when the user terminates the Windows list box. ��\�e�9 @��������������If you allocate any memory in the CListBox object, override the CListBox destructor to dispose of the allocations. See Also�o��W�� ր�����+���㉄N�����Є'�����9������3Iـ���M3�0������f������K�������CWnd, CButton, CComboBox, CEdit, CScrollBar, CStatic, CModalDialog, CDialog ]-e���0 0�Z�2����������Public MembersConstruction/Destructionj/W�*; F�^�R��	���]���������CListBoxCons��*��tructs a CListBox object. ;��e) "�$�2�������Initialization�T*�: D���R��1���N��À�������CreateCreates the Windows list box and attaches it to the CListBox object. ?e2) "�,�2�������General Operations��Cn ��G�R���~����Xʀ������4AX�����れ'5�������[5�������%�q�������GetCountReturns the number of strings in a list box. GetHorizontalExtentReturns the width in pixels that a list box can be scrolled horizontally. SetHorizontalExtentSets the width in pixels that a list box can be scrolled horizontally. GetTopIndexReturns the index of the first visible string in a list box. SetTopIndexSets the zero-based index of the first visible string in a list box. &�2i| ƀU�R���~����PUS�������_�������ffS������^�$������4.R������@"$������GetItemDataReturns the 32-bit value associated with the list-box item. SetItemDataSets the 32-bit value associated with the list-box item. GetItemRectReturns the bounding rectangle of the list-box item as it is currently displayed. GetSelReturns the selection state of a list-box item. GetTextCopies a list-box item into a buffer. GetTextLenReturns the length in bytes of a list-box item. ��C/D V��R���~��㈛C������Ф�y������SetColumnWidthSets the column width of a multicolumn list box. SetTabStopsSets the tab-stop positions in a list box. Hiw) "�>�2�������Single Selection Operations��/BD V��R�7��~�7�:����������yMr������GetCurSelReturns the zero-based index of the currently selected string in a list box. SetCurSelSelects a list-box string. J!w�) "�B�2�������Multiple Selection Operations�jBV	` ����R���{~���"�JM������w[������N��\������~_������SetSelSelects or deselects a list box item in a multiple-selection list box. GetSelCountReturns the number of strings currently selected in a multiple-selection list box. GetSelItemsReturns the indices of the strings currently selected in a list box. SelItemRangeSelects or deselects a range of strings in a multiple-selection list box. >��	) "�*�2�������String Operations9�V	�� �_�R�y��~�y�a�y������*b͆��������Q������l�'<������O�������8�݀������_H������AddStringAdds a string to a list box. DeleteStringDeletes a string from a list box. InsertStringInserts a string at a specific location in a list box. ResetContentClears all the entries from a list box. DirAdds filenames from the current directory to a list box. FindStringSearches for a string in a list box. SelectStringSearches for and selects a string in a single-selection list box. B�	) "�2�2�������Windows 3.1 Functions$��3n ��m�R���m~����(f�����㾏�����ヿ�q������}���������C�������SetItemHeightSets the height of items in a list box. GetItemHeightDetermines the height of items in a list box. FindStringExactFinds the first list box string that matches a specified string. GetCaretIndexDetermines the index of the item that has the focus rectangle in a multiple-selection list box. SetCaretIndexSet the focus rectangle to the item at the specified index in a multiple-selection list box. �a�1�����������CCListBox::AddStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")?3(  �.�������CListBox::AddString`.�d2 4�\�r�=���~������int AddString( const char FAR* lpItem );)�& ��2������Kd�2 4�2�R�=��~Q�=�����ParameterDescriptiontE�X@/ .���R�=��~�=��X@3����lpItemPoints to the null-terminated string that is to be added. 4��@) "��2�������Remarksz3X@BG \�g�2�����pCC�������Q��������Adds a string to a list box. If the list box was not created with the LBS_SORT style, the string is added to the end of the list. Otherwise, the string is inserted into the list, and the list is sorted. Use InsertString to insert a string into a specific location within the list box. Returns���@�B3 4���2����������The zero-based index to the string in the list box. The return value is LB_ERR if an error occurs; the return value is LB_ERRSPACE if insufficient space is available to store the new string. 5B4C) "��2�������See Alsod.�B�C6 <�\�2������Q��������CListBox::InsertString, LB_ADDSTRING �`4C)D1"��������)DhDYFCListBox::CListBoxEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")?�ChD) "�,�2�������CListBox::CListBox;)D�D, (��r�=���~����CListBox();)hD�D& ��2������4�DE) "��2�������Remarks��DFL f���2���������\僭����������You construct a CListBox object in two steps. First call the constructor CListBox, then call Create, which initializes the Windows list box and attaches it to the CListBox. See AlsoHEYF0 0�0�2����N��À�����CListBox::Create �^F�F1����������F%G�CListBox::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")=YF%G) "�(�2�������CListBox::Create�W�F�GD X���r�=���~������������BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );)%G�G& ��2������K�G4H2 4�2�R�=��~Q�=�����ParameterDescription�F�G�Ir ����R�=��~�=����pCC���������������������������dwStyleSpecifies the style of the list box. rectSpecifies the list-box size and position. Can be either a CRect object or a RECT structure. pParentWndSpecifies the list box's parent window (usually a CDialog or CModalDialog object). It must not be NULL. nIDSpecifies the list box's resource ID. 44H J) "��2�������Remarks���I�M� X���2�������\僭�������\僭�����@�����ؤ"������6����e��������@�����ؤ"������6����e�����������ؤ"�����You construct a CListBox object in two steps. First call the constructor, then call Create, which initializes the Windows list box and attaches it to the CListBox object. When Create executes, Windows sends the WM_NCCREATE, WM_CREATE, WM_NCCALCSIZE, and WM_GETMINMAXINFO messages to the list-box control. These messages are handled by default by the OnNcCreate, OnCreate, OnNcCalcSize, and OnGetMinMaxInfo member functions in the CWnd base class. To extend the default message handling, derive a class from CListBox, add a message map to the new class, and override the preceding message-handler member functions. Override OnCreate, for example, to perform needed initialization for a new class. �� J�N- (��2��������To handle Windows notification messages sent from a CListBox object to its parent, add any of the following message-map entries that you want to process to the parent class message map: �r�M�OV |���pȘR����{�������������������ON_COMMAND ON_LBN_DBLCLK ON_LBN_ERRSPACE ON_LBN_KILLFOCUS ON_LBN_SELCHANGE ON_LBN_SETFOCUS q@�N�1 2�������6C4�����Apply the following window styles to a list-box control: �O�YFG�OS�2 4�*�R���i~Q�������StyleApplicationH����` ����R���i~�������������������������������WS_CHILDAlways. WS_VISIBLEUsually. WS_DISABLEDRarely. WS_VSCROLLAdds a vertical scroll bar. WS_HSCROLLAdds a horizontal scroll bar. WS_GROUPTo group controls. WS_TABSTOPTo allow tabbing to this control. �IS��8 @�������pCC��������Apply any combination of list-box styles to a list box. ReturnsY+��u�. ,�V���������TRUE if successful; otherwise FALSE. 4���(  ��������See AlsoIu��/ .�4�����]�������CListBox::CListBox �d����1�����������Ƀ+�CListBox::DeleteStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")B�Ƀ(  �4�������CListBox::DeleteStringX&��!�2 4�L�r�=���~������int DeleteString( UINT nIndex );)ɃJ�& ��2������K!���2 4�2�R�=��~Q�=�����ParameterDescriptionvGJ��/ .���R�=��~�=�����nIndexSpecifies the zero-based index of the string to be deleted. 4��?�) "��2�������RemarksY,���- *�X�2���������Deletes an item in a list box. Returns��?�j�3 4�?�2����������A count of the strings remaining in the list. The return value is LB_ERR if the nIndex specifies an index greater then the number of items in the list. 5����) "��2�������See Also�Jj�+�B T���2������a�y������Q������LB_DELETESTRING, CListBox::AddString, CListBox::InsertString �[����1z�����������:�CListBox::DirEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')"):+��) "�"�2�������CListBox::Dirq9��b�8 @�r�r�=���~��������int Dir( UINT attr, const char FAR* lpWildCard );)���& ��2������Kb�ֈ2 4�2�R�=��~Q�=�����ParameterDescription������B R�	�R�=��~�=������&( �����attrCan be any combination of the enum values described in CFile::GetStatus, or any combination of the following values: Cֈ߉2 4�"�R��?Q������ValueMeaningk$��J�G \�I�R��?�����������������������0x0000File can be read from or written to. 0x0001File can be read from, but not written to. 0x0002File is hidden and does not appear in a directory listing. 0x0004File is a system file. 0x0010The name specified by lpWildCard specifies a directory. 0x0020File has been archived. 0x4000Include all drives that match the name specified by lpWildCard. 0x8000Exclusive flag. If the exclusive flag is set, only files of the specified type are listed. Otherwise, files of the specified type are listed in addition to "normal" files. �k߉�/ .���R�=��~�=�����lpWildCardPoints to a file-specification string. The string can contain wildcards (for example, *.*). 4J��) "��2�������RemarkspC���- *���2���������Adds a list of filenames and/or drives to a list box. Returns����3 4���2����������The zero-based index of the last filename added to the list. The return value is LB_ERR if an error occurs; the return value is LB_ERRSPACE if insufficient space is available to store the new strings. 5����) "��2�������See Alsoz8��:�B T�p�2������������&( ������CWnd::DlgDirList, LB_DIR, CFile::GetStatus �b��͏1��������͏���CListBox::FindStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")A:��) "�0�2�������CListBox:͏�:�:FindString�H͏��8 @���r�=���~��������int FindString( int nStartAfter, const char FAR* lpItem ) const;)���& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescriptionA���O�D V���R�=��~�=�������������nStartAfterContains the zero-based index of the item before the first item to be searched. When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nStartAfter. If nStartAfter is -1, the entire list box is searched from the beginning. lpItemPoints to the null-terminated string that contains the prefix to search for. The search is case-independent, so this string may contain any combination of uppercase and lowercase letters. 4���) "��2�������Remarks�O���: B���2������_H��������Finds the first string in a list box that contains the specified prefix without changing the list-box selection. Use the SelectString member function to both find and select a string. Returns�Z���, (���2��������The zero-based index of the matching item, or LB_ERR if the search was unsuccessful. 5��A�) "��2�������See Also�d���N l���2�����_H����a�y������Q��������CListBox::SelectString, CListBox::AddString, CListBox::InsertString, LB_FINDSTRING �`A���1��������������CListBox::GetCountEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")?����) "�,�2�������CListBox::GetCountE���, (�2�r�=���~����int GetCount() const;)��1�& ��2������4�e�) "��2�������Remarks��1�2�/ ,�=�2����������Retrieves the number of items in a list box. The returned count is one greater then the index value of the last item (the index is zero-based). ReturnstHe���, (���2��������The number of items in the list box, or LB_ERR if an error occurs. 52���) "��2�������See Also;���* $�"�2��������LB_GETCOUNT �a����1*��������������CListBox::GetCurSelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")@���) "�.�2�������CListBox::GetCurSelF��.�, (�4�r�=���~����int GetCurSel() const;)��W�& ��2������4.���) "��2�������Remarks��W���; D�w�2������D��>��������Retrieves the zero-based index of the currently selected item, if any, in a single-selection list box. GetCurSel should not be called for a multiple-selection list box. Returns����K�- (�;�2��������The zero-based index of the currently selected item. It is LB_ERR if no item is currently selected or if the list box is a multiple-selection list box. 5����) "��2�������See Alsoa+K���6 <�V�2�������yMr������LB_GETCURSEL, CListBox::SetCurSel �k��}�1,��������}����CListBox::GetHorizontalExtentEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")J!����) "�B�2�������CListBox::GetHorizontalExtentP$}��, (�H�r�=���~����int GetHorizontalExtent() const;)��@�& ��2������4�t�) "��2�������RemarksD@���A P��2��������6C4��������Retrieves from a list box the width in pixels by which the list box can be scrolled horizontally if the list box has horizontal scroll bars. To respond to GetHorizontalExtent, the list box must have been defined with the WS_HSCROLL style. ReturnsZ4t�& �h�2������The scrollable width of the list ����box, in pixels. 5��S) "��2�������See Alsou?�6 <�~�2���れ'5��������CListBox::SetHorizontalExtent, LB_GETHORIZONTALEXTENT �cS\1��������	\�nCListBox::GetItemDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")B��) "�2�2�������CListBox::GetItemData^,\�2 4�X�r�=���~������DWORD GetItemData( int nIndex ) const;)�%& ��2������K�p2 4�2�R�=��~Q�=�����ParameterDescriptionvG%�/ .���R�=��~�=�����nIndexSpecifies the zero-based index of the item in the list box. 4p) "��2�������Remarks���
A P�e�2���������_��������Retrieves the application-supplied 32-bit value associated with the specified list-box item. The 32-bit value was the lpItem parameter of a SetItemData call. ReturnszN�, (���2��������The 32-bit value associated with the item, or LB_ERR if an error occurs. 5
�) "��2�������See Also�d�nN l���2����a�y������Q�����_��������CListBox::AddString, CListBox::InsertString, CListBox::SetItemData, LB_GETITEMDATA �c�1���������
D�	CListBox::GetItemRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")BnD) "�2�2�������CListBox::GetItemRects;�8 @�v�r�=���~��������int GetItemRect( int nIndex, LPRECT lpRect ) const;)D�& ��2������K�+2 4�2�R�=��~Q�=�����ParameterDescription���> J�a�R�=��~�=�����������nIndexSpecifies the zero-based index of the item. lpRectSpecifies a long pointer to a RECT data structure that receives the list-box client coordinates of the item. 4+M) "��2�������Remarks��	. *��2���������Retrieves the dimensions of the rectangle that bounds a list-box item as it is currently displayed in the list-box window. ReturnsHMK	) "�>�2�������LB_ERR if an error occurs. 5	�	) "��2�������See Also>K	�	* $�(�2��������LB_GETITEMRECT �^�	M
1���������M
�
�
CListBox::GetSelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")=�	�
) "�(�2�������CListBox::GetSelW%M
�
2 4�J�r�=���~������int GetSel( int nIndex ) const;)�

& ��2������K�
U2 4�2�R�=��~Q�=�����ParameterDescriptionf7
�/ .�n�R�=��~�=�����nIndexSpecifies the zero-based index of the item. 4U�) "��2�������Remarks����. *�
�2���������Retrieves the selection state of an item. This member function works with both single and multiple-selection list boxes. Returns�}�L
, (���2��������A positive number if the specified item is selected; otherwise, it is 0. The return value is LB_ERR if an error occurs. 5��
) "��2�������See Also[%L
�
6 <�J�2������"�JM������LB_GETSEL, CListBox::SetSel �c�
p1���������p�)ACListBox::GetSelCountEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")B�
�) "�2�2�������CListBox::GetSelCountHp�, (�8�r�=���~����int GetSelCount() const;)�#& ��2������4�W) "��2�������Remarks�\#�- *���2���������Retrieves the total number of selected items in a multiple-selection list box. Returns�|W�@, (���2����@�
������The count of selected items in a list box. If the list box is a single-selection list box, the return value is LB_ERR. 5��@) "��2�������See Also`*�@)A6 <�T�2����"�JM��������CListBox::SetSel, LB_GETSELCOUNT �c�@�A1I��������
�A�AFCListBox::GetSelItemsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")B)A�A) "�2�2�������CListBox::GetSelItemsv>�AuB8 @�|�r�=���~��������int GetSelItems( int nMaxItems, LPINT rgIndex ) const;)�A�B& ��2������KuB�B2 4�2�R�=��~Q�=�����ParameterDescription ��B	D> J���R�=��~�=�����������nMaxItemsSpecifies the maximum number of selected items whose item numbers are to be placed in the buffer. rgIndexSpecifies a long pointer to a buffer large enough for the number of integers specified by nMaxItems. 4�B=D) "��2�������Remarks��	D�D. *��2���������Fills a buffer with an array of integers that specifies the item numbers of selected items in a multiple-selection list box. Returns��=D�E- (��2��������The actual number of items placed in the buffer. If the list box is a single-selection list box, the return value is LB_ERR. 5�D�E) "��2�������See Also>�EF* $�(�2��������LB_GETSELITEMS �_�E�F1v���������F�F*LCListBox::GetTextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")>F�F) "�*�2�������CListBox::GetText�v�F�GK f���r�=���~���������������int GetText( int nIndex, char FAR* lpBuffer ) const;void GetText( int nIndex, CString& rString ) const;)�F�G& ��2������K�GH2 4�2�R�=��~Q�=�����ParameterDescription�o�G�IR r���R�=��~�=��������@"$�����������nIndexSpecifies the zero-based index of the string to be retrieved. lpBufferPoints to the buffer that receives the string. The buffer must have sufficient space for the string and a terminating null character. The size of the string can be determined ahead of time by calling the GetTextLen member function. rStringA reference to a CString object. 4HJ) "��2�������Remarks���I�J4 6��2�����������Gets a string from a list box. The second form of this member function fills a CString object with the string text. Returns��J�K3 4�9�2����������The length (in bytes) of the string, excluding the terminating null character. If nIndex does not specify a valid index, the return value is LB_ERR. 5�J�K) "��2�������See Also`*�K*L6 <�T�2����@"$��������CListBox::GetTextLen, LB_GETTEXT �b�K�L1m���������L�LA�CListBox::GetTextLenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")A*L�L) "�0�2�������CListBox::GetTextLen[)�LYM2 4�R�r�=���~������int GetTextLen( int nIndex ) const;)�L�M& ��2������KYM�M2 4�2�R�=��~Q�=�����ParameterDescriptionh9�M5N/ .�r�R�=��~�=�����nIndexSpecifies the zero-based index of the string. 4�MiN) "��2�������Remarksj=5N�N- *�z�2���������Gets the length of a string in a list box item. Returns��iN�O3 4�5�2����������The length of the string in bytes, excluding the terminating null character. If nIndex does not specify a valid index, the return value is LB_ERR. 5�N�O) "��2�������See Also`*�OA�6 <�T�2����4.R����OA�*L�����CListBox::GetText, LB_GETTEXTLEN �c�OՀ1���������Հ���CListBox::GetTopIndexEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")BA��) "�2�2�������CListBox::GetTopIndexHՀ_�, (�8�r�=���~����int GetTopIndex() const;)���& ��2������4_���) "��2�������Remarks������. *���2���������Retrieves the zero-based index of the first visible item in a list box. Initially, item 0 is at the top of the list box, but if the list box is scrolled, another item may be at the top. ReturnsgA���& ���2������The zero-based index of the first visible item in a list box. 5��M�) "��2�������See Alsoe/���6 <�^�2����%�q���������CListBox::SetTopIndex, LB_GETTOPINDEX �dM�G�1��������G���`�CListBox::InsertStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")C����) "�4�2�������CListBox::InsertStringw?G��8 @�~�r�=���~��������int InsertString( int nIndex, const char FAR* lpItem );)��*�& ��2������K�u�2 4�2�R�=��~Q�=�����ParameterDescription�*���8 >���R�=��~�=���������nIndexSpecifies the zero-based index of the position to insert the string. If this parameter is -1, the string is added to the end of the list. lpItemPoints to the null-terminated string that is to be inserted. 4u���) "��2�������Remarks������R r�Y�2�����a�y�����+����pCC��������Inserts a string into the list box. Unlike the AddString member function, InsertString does not cause a list with the LBS_SORT style to be sorted. Returns���Lj3 4���2����������The zero-based index of the position at which the string was inserted. The return value is LB_ERR if an error occurs; the return value is LB_ERRSPACE if insufficient space is available to store the new string. 5����) "��2�������See Alsod.Lj`�6 <�\�2����a�y��������CListBox::AddString, LB_INSERTSTRING �d����1o����������8�v�CListBox::ResetContentEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")C`�8�) "�4�2�������CListBox::ResetContentD��|�, (�0�r�=���~����void ResetContent();)8���& ��2������4|�ي) "��2�������Remarks^1��7�- *�b�2���������Removes all items from a list box. See Also?يv�* $�*�2��������LB_RESETCONTENT �d7��1Q	���������N���CListBox::SelectStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")Cv�N�) "�4�2�������CListBox::SelectString|D�ʌ8 @���r�=���~��������int SelectString( int nStartAfter, const char FAR* lpItem );)N��& ��2������Kʌ>�2 4�2�R�=��~Q�=�����ParameterDescriptionA���D V���R�=��~�=�������������nStartAfterContains the zero-based index of the item before the first item to be searched. When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nStartAfter. If nStartAfter is -1, the entire list box is searched from the beginning. lpItemPoints to the null-terminated string that contains the prefix to search for. The search is case-independent, so this string may contain any combination of uppercase and lowercase letters. 4>���) "��2�������RemarksK�
�I `��2�������pCC���������gA������Sea��
�v�rches for a list-box item that matches the specified string, and if a matching item is found, it selects the item. The list box is scrolled, if necessary, to bring the selected item into view. This member function cannot be used with a list box that has the LBS_MULTIPLESEL style. An item is selected only if its initial characters (from the starting point) match the characters in the string specified by lpItem. Use the FindString member function to find a string without selecting the item. 4��>�) "��2�������Returns��
��- (�O�2��������The index of the selected item if the search was successful. If the search was unsuccessful, the return value is LB_ERR and the current selection is not changed. 5>�G�) "��2�������See Alsoe/���6 <�^�2����8�݀�������CListBox::FindString, LB_SELECTSTRING �dG�A�1���������A�����CListBox::SelItemRangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")C����) "�4�2�������CListBox::SelItemRange�JA��> L���r�=���~����������int SelItemRange( BOOL bSelect, int nFirstItem, int nLastItem );)��5�& ��2������K���2 4�2�R�=��~Q�=�����ParameterDescription�G5��R r���R�=��~�=�������������������bSelectSpecifies how to set the selection. If bSelect is TRUE, the string is selected and highlighted; if FALSE, the highlight is removed and the string is no longer selected. nFirstItemSpecifies the zero-based index of the first item to set. nLastItemSpecifies the zero-based index of the last item to set. 4��M�) "��2�������Remarks����/ ,�1�2����������Selects one or more consecutive items in a multiple-selection list box. Use this member function only with multiple-selection list boxes. ReturnsHM�\�) "�>�2�������LB_ERR if an error occurs. 5���) "��2�������See Alsof0\���6 <�`�2������N��\������LB_SELITEMRANGE, CListBox::GetSelItems �f����1�������������7�CListBox::SetColumnWidthEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")E����) "�8�2�������CListBox::SetColumnWidth[)��.�2 4�R�r�=���~������void SetColumnWidth( int cxWidth );)��W�& ��2������K.���2 4�2�R�=��~Q�=�����ParameterDescriptioni:W��/ .�t�R�=��~�=�����cxWidthSpecifies the width in pixels of all columns. 4��?�) "��2�������Remarks�~���9 B���2�����pCC��������Sets the width in pixels of all columns in a multicolumn list box (created with the LBS_MULTICOLUMN style.) See AlsoA?�7�* $�.�2��������LB_SETCOLUMNWIDTH �a����1<����������	� CListBox::SetCurSelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")@7�	�) "�.�2�������CListBox::SetCurSelU#��^�2 4�F�r�=���~������int SetCurSel( int nSelect );)	���& ��2������K^���2 4�2�R�=��~Q�=�����ParameterDescription������6 :��R�=��~�=�������nSelectSpecifies the zero-based index of the string to be selected. If nSelect is -1, the list box is set to have no selection. 4����) "��2�������RemarkspA��? / ,���2����������Selects a string and scrolls it into view, if necessary. When the new string is selected, the list box removes the highlight from the previously selected string. Use this member function only with single-selection list boxes. It cannot be used to set or remove a selec��? 7�tion in a multiple-selection list box. ReturnsH��� ) "�>�2�������LB_ERR if an error occurs. 5? � ) "��2�������See Alsoa+�  6 <�V�2������:���������LB_SETCURSEL, CListBox::GetCurSel �k� � 1+���������  � CListBox::SetHorizontalExtentEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")J!  ) "�B�2�������CListBox::SetHorizontalExtenta/� d 2 4�^�r�=���~������void SetHorizontalExtent( int cxExtent );) � & ��2������Kd � 2 4�2�R�=��~Q�=�����ParameterDescription�`� g / .���R�=��~�=�����cxExtentSpecifies the number of pixels by which the list box can be scrolled horizontally. 4� � ) "��2�������Remarks��g � A P�Y�2��������6C4��������Sets the width, in pixels, by which a list box can be scrolled horizontally. If the size of the list box is smaller than this value, the horizontal scroll bar will horizontally scroll items in the list box. If the list box is as large or larger than this value, the horizontal scroll bar is hidden. To respond to a call to SetHorizontalExtent, the list box must have been defined with the WS_HSCROLL style. See Alsou?� � 6 <�~�2�����4AX��������CListBox::GetHorizontalExtent, LB_SETHORIZONTALEXTENT �c� � 1[��������� � �	 CListBox::SetItemDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")B� � ) "�2�2�������CListBox::SetItemDatap8� C 8 @�p�r�=���~��������int SetItemData( int nIndex, DWORD dwItemData );)� l & ��2������KC � 2 4�2�R�I��~Q�I�����ParameterDescription�yl g 7 >���R�I��~�I���������nIndexSpecifies the zero-based index of the item. dwItemDataSpecifies the value to be associated with the item. 4� � ) "��2�������Remarks�Sg 	 - *���2���������Sets a 32-bit value associated with the specified item in a list box. ReturnsH� c	 ) "�>�2�������LB_ERR if an error occurs. 5	 �	 ) "��2�������See Alsoe/c	 �	 6 <�^�2�����PUS��������CListBox::GetItemData, LB_SETITEMDATA �^�	 �
 1����������
 �
 L CListBox::SetSelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")=�	 �
 ) "�(�2�������CListBox::SetSeln6�
 7 8 @�l�r�=���~��������int SetSel( int nIndex, BOOL bSelect = TRUE );)�
 ` & ��2������K7 � 2 4�2�R�=��~Q�=�����ParameterDescription��` �
 P n�9�R�=��~�=�����������������nIndexContains the zero-based index of the string to be set. If -1, the selection is added to or removed from all strings, depending on the value of bSelect. bSelectSpecifies how to set the selection. If bSelect is TRUE, the string is selected and highlighted; if FALSE, the highlight is removed and the string is no longer selected. The specified string is selected and highlighted by default. 4� �
 ) "��2�������Remarks�{�
 t . ,���2����������Selects a string in a multiple-selection list box. Use this message only with multiple-selection list boxes. ReturnsH�
 � ) "�>�2�������LB_ERR if an error occurs. 5t � ) "��2�������See Also[%� L 6 <�J�2����^�$��������CListBox::GetSel, LB_SETSEL �c� � 1���������� .@ �H CListBox::SetTabStopsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")BL .@ ) "�2�2��� .@ L �����CListBox::SetTabStops�z� �@ L h���r�=���~����������������BOOL SetTabStops( int nTabStops, LPINT rgTabStops );void SetTabStops();BOOL SetTabStops( int cxEachStop );).@ A & ��2������K�@ hA 2 4�2�R�?��~Q�?�����ParameterDescription��A SD > J�[�R�?��~�?�����������nTabStopsSpecifies the number of tab stops to have in the list box. rgTabStopsPoints to the first member of an array of integers containing the tab-stop positions in dialog units. (A dialog unit is a horizontal or vertical distance. One horizontal dialog unit is equal to one-fourth of the current dialog base width unit, and one vertical dialog unit is equal to one-eighth of the current dialog base height unit. The dialog base units are computed based on the height and width of the current system font. The GetDialogBaseUnits Windows function returns the current dialog base units in pixels.) The tab stops must be sorted in increasing order; back tabs are not allowed. zEhA �D 5 :���R�?��~�?�������cxEachStopTab stops are set at every cxEachStop dialog units. 4SD E ) "��2�������Remarks�"�D �G y ��E�2���������������������������
�2a����pCC�����Sets the tab-stop positions in a list box. If SetTabStops() is called, nTabStops is 0, rgTabStops is NULL, and the default tab stop is 2 dialog units. If nTabStops is 1, tab stops will be separated by the distance specified by rgTabStops. If rgTabStops points to more than a single value, then a tab stop will be set for each value in rgTabStops, up to the number specified by nTabStops. To respond to a call to the SetTabStops member function, the list box must have been created with the LBS_USETABSTOPS style. 4E �G ) "��2�������Returnse6�G 5H / .�l�2���������TRUE if all the tabs were set; otherwise FALSE. 5�G jH ) "��2�������See Also\,5H �H 0 0�X�2����������LB_SETTABSTOPS, ::GetDialogBaseUnits �cjH ZI 1���������ZI �I �L CListBox::SetTopIndexEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")B�H �I ) "�2�2�������CListBox::SetTopIndexV$ZI �I 2 4�H�r�=���~������int SetTopIndex( int nIndex );)�I J & ��2������K�I fJ 2 4�2�R�=��~Q�=�����ParameterDescriptiono@J �J / .���R�=��~�=�����nIndexSpecifies the zero-based index of the list-box item. 4fJ 	K ) "��2�������Remarks��J 
L / ,���2����������Ensures that a particular list-box item is visible. The system scrolls the list box until either the list-box item appears at the top of the list box or the maximum scroll range has been reached. ReturnsH	K RL ) "�>�2�������LB_ERR if an error occurs. 5
L �L ) "��2�������See Alsoe/RL �L 6 <�^�2�����[5���������CListBox::GetTopIndex, LB_SETTOPINDEX �a�L ~M 1���������~M �M �� class CMDIChildWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')")?�L �M ) "�,�2�������class CMDIChildWnd8~M �M ) "��2�������Description���M ߀ 4 6�U�2�����������The CMDIChildWnd class provides the functionality of a Windows multiple document interface (MDI) child window, along with data and methods to manipulate the window. An MDI child window looks much like a typical application window, except that the MDI child window lacks a menu. The menu on the main application window applies to MDI child windows. To create a useful MDI child window for your application, derive a class from CMDIChildWnd. Add member variables to t�M ߀ �L he derived class to store data specific to your application. Implement message-handler member functions and a message map in the derived class to specify what happens when messages are directed to the window. ��M b� � Ԁ�2���������D�S�������\僭�������I`t���������������You create an MDI child window in two steps. First, call the constructor CMDIChildWnd to construct the CMDIChildWnd object, then call the Create member function to create the MDI child window and attach it to the CMDIChildWnd object. Construction can be a one-step process in a derived class. Write a constructor for the derived class and call Create from  within the constructor. When the user terminates your MDI child window, destroy the CMDIChildWnd object, or call the DestroyWindow member function, which CMDIChildWnd inherits from class CWnd, to remove the CMDIChildWnd and destroy its data structures. If you allocate any memory in the CMDIChildWnd object, override the CMDIChildWnd destructor to dispose of the allocations. 5߀ �� ) "��2�������See Alsou-b� � H `�Z�2����+����{Yh����;c-ڀ�����CWnd, CFrameWnd, CMDIFrameWnd ]-�� i� 0 0�Z�2����������Public MembersConstruction/Destruction�G� � ; F���R����~���������������CMDIChildWndCalled when a CMDIChildWnd object is constructed. ;i� &� ) "�$�2�������Initialization�]� �� : D���R��1���D�S��������CreateCreates the Windows MDI child window associated with the CMDIChildWnd object. 7&� � ) "��2�������Operations��� z� n ��1�R���g~����$J�������xˀ�����n:�p������@�>�������5Id������MDIDestroyDestroys this MDI child window. MDIActivateActivates this MDI child window. MDIMaximizeMaximizes this MDI child window. MDIRestoreRestores this MDI child window from maximized or minimized size. GetParentFrameReturns the parent MDI frame. >� �� ) "�*�2�������Protected Members9z� � ) "� �2�������Data Members�Q�� �� A R���R��9~�����
؀���������m_pMDIFrameWndPoints to the parent CMDIFrameWnd of this CMDIChildWnd. �l�  � 1��������� � f� ,� CMDIChildWnd::CMDIChildWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIChildWnd')")F�� f� (  �<�������CMDIChildWnd::CMDIChildWnd? � �� , (�&�r�=���~����CMDIChildWnd();)f� Ί & ��2������4�� � ) "��2�������Remarks��Ί �� @ N�=�2�������\僭��������Called when a CMDIChildWnd object is constructed. The Windows MDI child window is not created until the Create member function is called. See AlsoL� ,� 0 0�8�2����D�S������CMDIChildWnd::Create �f�� Ì 1D��������Ì � �� CMDIChildWnd::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIChildWnd')")A,� � ) "�0�2�������CMDIChildWnd::Create��Ì �� K d�W�r�=���~��������������BOOL Create( const char FAR* lpClassName, const char FAR* lpWindowName, DWORD dwStyle = 0, const RECT& rect = rectDefault, CMDIFrameWnd* pParentWnd = NULL );)� #� & ��2������K�� n� 2 4�2�R�{��~Q�{�����ParameterDescriptionA�#� �� j ����R�{��~�{����������������������6C4�����lpClassNamePoints to a null-terminated character string that names the Windows class (a WNDCLASS struct). The class name can be any name registered with the afxRegisterWndClass function or any of the predefined control-class names. Should be NULL for a standard CMDIChildWnd. lpWinn� �� ,� dowNamePoints to a null-terminated character string that represents the window name. Used as text for the title bar. dwStyleSpecifies the window style attributes. A�n� �� J b���R�{��~�{���������������rectContains the size and position of the window. The rectDefault value allows Windows to specify the size and position of the new CMDIChildWnd. pParentWndSpecifies the window's parent. If NULL, the main application window is used. 4�� 0� ) "��2�������Remarks�`�� �� 3 6���2�����������Creates the Windows MDI child window and attaches it to the CMDIChildWnd object. ReturnsZ+0� � / .�V�2���������TRUE if successful; otherwise FALSE. 5�� R� ) "��2�������See AlsoR"� �� 0 0�D�2��������������CMDIChildWnd::CMDIChildWnd �nR� C� 1���������C� �� � CMDIChildWnd::GetParentFrameEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIChildWnd')")I �� �� ) "�@�2�������CMDIChildWnd::GetParentFrameT(C� �� , (�P�r�=���~����virtual CFrameWnd* GetParentFrame();)�� 	� & ��2������4�� =� ) "��2�������Remarks��	� � 9 @�5�2�����2g�5�������Returns the parent MDI frame. The actual parent, as returned by the GetParent member function, is a special, invisible window of type MDICLIENT. �k=� �� 1m�������� �� �� .� CMDIChildWnd::MDIActivateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIChildWnd')")F� �� ) "�:�2�������CMDIChildWnd::MDIActivateC�� 5� , (�.�r�=���~����void MDIActivate();)�� ^� & ��2������45� �� ) "��2�������Remarks��^� y� . *�s�2���������An MDI child window is activated independently of the MDI frame window. When the frame becomes active, the child window that was last activated will be activated as well. See Also�g�� .� N l���2�����Į�����i|�܀���
濾��������CMDIFrameWnd::MDIGetActive, CWnd::OnNcActivate, CMDIFrameWnd::MDINext, WM_MDIACTIVATE �jy� �� 1���������!�� � �� CMDIChildWnd::MDIDestroyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIChildWnd')")E.� � ) "�8�2�������CMDIChildWnd::MDIDestroyB�� P� , (�,�r�=���~����void MDIDestroy();)� y� & ��2������4P� �� ) "��2�������Remarks��y� i� / ,��2����������Destroys this MDI child window. Removes the title of the child window from the frame window and deactivates the child window. See Alsoc-�� �� 6 <�Z�2������D�S������WM_MDIDESTROY, CMDIChildWnd::Create �ki� h� 1���������"h� �� 9� CMDIChildWnd::MDIMaximizeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIChildWnd')")F�� �� ) "�:�2�������CMDIChildWnd::MDIMaximizeCh� �� , (�.�r�=���~����void MDIMaximize();)�� � & ��2������4�� N� ) "��2�������Remarks�U� �� . *���2���������Maximizes this MDI child window. When a child window is maximized, Windows resizes it to make its client area fill the client window. Windows places the child window's Control menu in the frame's menu bar so that the user can restore or close the child window, and adds the title of the child window to the frame-window title. See Alsoh2N� 9� 6 <�d�2������@�>�������WM_MDIMAXIMIZE, CMDIChildWnd::MDIRestore �j�� �� 1���������#�� %!�!CMDIChildWnd::MDIRestoreEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIChildWnd')")E9� %!) "�8�2�������CM�� %!9� DIChildWnd::MDIRestoreB�� g!, (�,�r�=���~����void MDIRestore();)%!�!& ��2������4g!�!) "��2�������Remarks|O�!@!- *���2���������Restores this MDI child window from maximized or minimized size. See Alsoh2�!�!6 <�d�2����n:�p��������CMDIChildWnd::MDIMaximize, WM_MDIRESTORE �n@!G!1Y��������$G!�!�!CMDIChildWnd::m_pMDIFrameWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIChildWnd')")I �!�!) "�@�2�������CMDIChildWnd::m_pMDIFrameWnd4G!�!) "��2�������Remarks�J�!G!9 B���2�������������Points to the parent CMDIFrameWnd of this CMDIChildWnd. See Alsoq5�!�!< H�j�2����5Id����;c-ڀ�����CMDIChildWnd:GetParentFrame, CMDIFrameWnd �aG!J!11��������%J!�!�!class CMDIFrameWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')")?�!�!) "�,�2�������class CMDIFrameWnd8J!�!) "��2�������Description$��!�!4 6���2�����������The CMDIFrameWnd class provides the functionality of a Windows multiple document interface (MDI) frame window, and also provides members for managing the window. To create a useful MDI frame window for your application, derive a class from CMDIFrameWnd. Add member variables to the derived class to store data specific to your application. Implement message-handler member functions and a message map in the derived class to specify what happens when messages are directed to the window. �e�!�!M h���2�����S�ȝ�������\僭��������You create an MDI frame window in two steps. First, invoke the constructor, then call the Create member function to create the MDI frame window and attach it to the CMDIFrameWnd object. Construction can be a one-step process in a derived class. Write a constructor for the derived class and call Create from within the constructor. See Alsou-�!	!H `�Z�2����+����{Yh�����^I�������CWnd, CFrameWnd, CMDIChildWnd ]-�!i	!0 0�Z�2����������Public MembersConstruction/Destructionk0	!�	!; F�`�R���s~���U�C��������CMDIFrameWndConstructs a CMDIFrameWnd. ;i	!
!) "�$�2�������Initializations�	!�!h ���R�a��~�a�S�ȝ��������~��������������ؤ"�����CreateCreates and attaches the Windows MDI frame window associated with the CMDIFrameWnd object. CreateClientFills out a CLIENTCREATESTRUCT and creates a Windows MDICLIENT window for this CMDIFrameWnd. Called by the OnCreate member function. 7
!�!) "��2�������Operations��!Q!| ƀ9�R�ہA~���	ND������Q����������Į�������D˫������c��������
濾������MDIActivateActivates a different MDI child window. MDICascadeArranges all child windows in a cascade format. MDIGetActiveRetrieves the current active MDI child window, along with a flag indicating whether the child is maximized or not. MDIIconArrangeArranges all minimized document child windows. MDIMaximizeMaximizes an MDI child window. MDINextActivates the child window immediately behind the currently active child window and places the currently active child window behind all other child windows. 8��!�!R r���R�ہA~��㟥�ʀ������a�C������MHǾ������MDIRestoreRestores an MDI child window from maximized or minimized size. MDISetMenuReplaces the menu of an MDI frame window, the Window pop-up menu, or both. MDITileArranges all child windows in a tiled format. �lQ!2@!1��������&2@!x@!^B!CMDIFrameWnd::CMDIFrameWndEnableButton("up");ChangeButtonBinding("up"�!2@!�!, "JI(`mfc10wh.hlp', `CMDIFrameWnd')")F�!x@!(  �<�������CMDIFrameWnd::CMDIFrameWnd?2@!�@!, (�&�r�=���~����CMDIFrameWnd();)x@!�@!& ��2������4�@!A!) "��2�������Remarks���@!B!F Z�q�2���������\僭��������Constructs a CMDIFrameWnd object. The Windows MDI frame window is not created and attached to the CMDIFrameWnd object until the Create member function is called. See AlsoLA!^B!0 0�8�2����S�ȝ������CMDIFrameWnd::Create �fB!�B!1���������'�B!6C!�J!CMDIFrameWnd::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIFrameWnd')")A^B!6C!) "�0�2�������CMDIFrameWnd::Create���B!D!Q p�'�r�=���~����������������BOOL Create( LPCSTR lpszClassName, LPCSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, LPCSTR lpszMenuName );)6C!CD!& ��2������KD!�D!2 4�2�R���{~Q�������ParameterDescription
�CD!�F!V z�o�R���{~���������������������lpszClassNamePoints to a null-terminated character string that names the Windows class (a WNDCLASS struct). The class name can be any name registered with the afxRegisterWndClass function or any of the predefined control-class names. If NULL, uses the predefined default CMDIFrameWnd attributes. lpszWindowNamePoints to a null-terminated character string that represents the window name. Used as text for the title bar. ��D!I!r ��#�R���{~������6C4���������������������������dwStyleSpecifies the window style attributes. rectContains the size and position of the window. The rectDefault value allows Windows to specify the size and position of the new CMDIFrameWnd. pParentWndSpecifies the parent window of this MDI frame window. This parameter should be NULL for top-level MDI frame windows. lpszMenuNameIdentifies the name of the menu resource to be used with the window. Use MAKEINTRESOURCE if the menu has an integer ID instead of a string. This parameter can be NULL. 4�F!RI!) "��2�������Remarks�`I!�I!3 6���2�����������Creates the Windows MDI frame window and attaches it to the CMDIFrameWnd object. ReturnsZ+RI!?J!/ .�V�2���������TRUE if successful; otherwise FALSE. 5�I!tJ!) "��2�������See AlsoR"?J!�J!0 0�D�2����U�C������CMDIFrameWnd::CMDIFrameWnd �ltJ!cK!12��������(cK!�K!�O!CMDIFrameWnd::CreateClientEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIFrameWnd')")G�J!�K!) "�<�2�������CMDIFrameWnd::CreateClient�WcK!9L!8 @���r�=���~��������virtual BOOL CreateClient( LPCREATESTRUCT lpCreateStruct, CMenu* pWindowMenu );)�K!bL!& ��2������K9L!�L!2 4�2�R�a��~Q�a�����ParameterDescription�nbL!^M!C V���R�a��~�a����I�����������lpCreateStructPointer to a CREATESTRUCT structure. pWindowMenuPointer to the window pop-up menu. 4�L!�M!) "��2�������Remarks�^M!�N!M h���2�������������ؤ"��������Creates the MDI client window that manages the CMDIChildWnds and fills out a CLIENTCREATESTRUCT. CreateClient should be called if you override the OnCreate member function. ReturnsZ+�M!�N!/ .�V�2���������TRUE if successful; otherwise FALSE. 5�N!3O!) "��2�������See Alsox<�N!�O!< H�x�2����U�C����S�ȝ������CMDIFrameWnd::CMDIFrameWnd, CMDIFrameWnd::Create �k3O!S�!1���������)S�!��!��!CMDIFrameWnd::MDIActivateEnableButt�O!S�!�O!on("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIFrameWnd')")F�O!��!) "�:�2�������CMDIFrameWnd::MDIActivate_-S�!��!2 4�Z�r�=���~������void MDIActivate( CWnd* pWndActivate );)��!!�!& ��2������K��!l�!2 4�2�R�a��~Q�a�����ParameterDescriptionpA!�!܁!/ .���R�a��~�a�����pWndActivatePoints to the MDI child window to be activated. 4l�!�!) "��2�������Remarks�܁!�!F Z���2�������i�����i|�܀������Activates a different MDI child window. The WM_MDIACTIVATE message is sent to both the child window being activated and the child window being deactivated. An MDI child window is activated independently of the MDI frame window. When the frame becomes active, the child window that was last activated is sent a WM_NCACTIVATE message to draw an active window frame and caption bar, but it does not receive another WM_MDIACTIVATE message. 5�!M�!) "��2�������See Also�_�!��!N l���2�����Į�����
濾����T���������CMDIFrameWnd::MDIGetActive, CMDIFrameWnd::MDINext, WM_ACTIVATE, WM_NCACTIVATE �jM�!��!1'��������*��!څ!Љ!CMDIFrameWnd::MDICascadeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIFrameWnd')")E��!څ!) "�8�2�������CMDIFrameWnd::MDICascadeB��!�!, (�,�r�=���~����void MDICascade();)څ!E�!& ��2������=�!��!) "�(�2�������Windows 3.1 onlyU#E�!׆!2 4�F�r�=���~������void MDICascade( int nType );)��!�!& ��2������K׆!K�!2 4�2�R�=��~Q�=�����ParameterDescription�Y�!Ӈ!/ .���R�=��~�=�����nTypeSpecifies a cascade flag. Currently, only the following flag may be specified: CK�!�!2 4�"�R��S}Q�������ValueMeaning�RӇ!��!/ .���R��S}�������MDITILE_SKIPDISABLEDPrevents disabled MDI child windows from being cascaded. 4�!ˈ!) "��2�������RemarkssF��!>�!- *���2���������Arranges all the MDI child windows in a cascade format. See Also�Pˈ!Љ!B T���2����D˫����MHǾ��������CMDIFrameWnd::MDIIconArrange, CMDIFrameWnd::MDITile, WM_MDICASCADE �l>�!m�!1���������+m�!��!�!CMDIFrameWnd::MDIGetActiveEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIFrameWnd')")GЉ!��!) "�<�2�������CMDIFrameWnd::MDIGetActiveuCm�!)�!2 4���r�=���~������CMDIChildWnd* MDIGetActive( BOOL* pbMaximized = NULL ) const;)��!R�!& ��2������K)�!��!2 4�2�R�G��~Q�G�����ParameterDescription�WR�!/�!; F���R�G��~�G���������pbMaximizedSet to TRUE on return if the window is maximized; otherwise FALSE. 4��!c�!) "��2�������Remarks��/�!�!. *��2���������Retrieves the current active MDI child window, along with a flag indicating whether the child window is maximized. ReturnsS-c�!d�!& �Z�2������A pointer to the active MDI child window. 5�!��!) "��2�������See Alsoj4d�!�!6 <�h�2����	ND��������CMDIFrameWnd::MDIActivate, WM_MDIGETACTIVE �n��!��!1
��������,��!�!��!CMDIFrameWnd::MDIIconArrangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIFrameWnd')")I �!�!) "�@�2�������CMDIFrameWnd::MDIIconArrangeF��!1�!, (�4�r�=���~����void MDIIconArrange();)�!Z�!& ��2������41�!��!) "��2�������Remarks�vZ�!=�!- *���2���������Arranges all minimized document child windows. It does not affect ch��!=�!�!ild windows that are not minimized. See Also�P��!��!B T���2����Q�������MHǾ��������CMDIFrameWnd::MDICascade, CMDIFrameWnd::MDITile, WM_MDIICONARRANGE �k=�!k�!1V��������-k�!��!��!CMDIFrameWnd::MDIMaximizeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIFrameWnd')")F��!��!) "�:�2�������CMDIFrameWnd::MDIMaximizeW%k�!�!2 4�J�r�=���~������void MDIMaximize( CWnd* pWnd );)��!1�!& ��2������K�!|�!2 4�2�R�=��~Q�=�����ParameterDescriptionZ+1�!��!/ .�V�R�=��~�=�����pWndPoints to the window to maximize. 4|�!
�!) "��2�������Remarks/��!9�!( ��2�������Maximizes an MDI child window. When a child window is maximized, Windows resizes it to make its client area fill the client window. Windows places the child window's Control menu in the frame's menu bar so that the user can restore or close the child window, and adds the title of the child window to the frame-window title. If another MDI child window is activated when the currently active MDI child window is maximized, Windows restores the currently active child and maximizes the newly activated child window. 5
�!n�!) "��2�������See Alsoh29�!��!6 <�d�2�����㟥�ʀ�����WM_MDIMAXIMIZE, CMDIFrameWnd::MDIRestore �gn�!n�!1���������.n�!��!<�!CMDIFrameWnd::MDINextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIFrameWnd')")B��!��!) "�2�2�������CMDIFrameWnd::MDINext?n�!��!, (�&�r�=���~����void MDINext();)��!�!& ��2������4��!L�!) "��2�������Remarks_0�!��!/ ,�a�2����������Activates the child window immediately behind the currently active child window and places the currently active child window behind all other child windows. If the currently active MDI child window is maximized, restores the currently active child and maximizes the newly activated child. See Also�OL�!<�!B T���2����	ND�����Į���������CMDIFrameWnd::MDIActivate, CMDIFrameWnd::MDIGetActive, WM_MDINEXT �j��!��!1j��������/��!�!U�!CMDIFrameWnd::MDIRestoreEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIFrameWnd')")E<�!�!) "�8�2�������CMDIFrameWnd::MDIRestoreV$��!r�!2 4�H�r�=���~������void MDIRestore( CWnd* pWnd );)�!��!& ��2������Kr�!��!2 4�2�R�=��~Q�=�����ParameterDescriptionY*��!?�!/ .�T�R�=��~�=�����pWndPoints to the window to restore. 4��!s�!) "��2�������RemarkszM?�!��!- *���2���������Restores an MDI child window from maximized or minimized size. See Alsoh2s�!U�!6 <�d�2����c����������CMDIFrameWnd::MDIMaximize, WM_MDIRESTORE �j��!��!1���������0��!5�!K"CMDIFrameWnd::MDISetMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIFrameWnd')")EU�!5�!) "�8�2�������CMDIFrameWnd::MDISetMenu{C��!��!8 @���r�=���~��������CMenu* MDISetMenu( CMenu* pFrameMenu, CMenu* pWindowMenu );)5�!��!& ��2������K��!$�!2 4�2�R�U��~Q�U�����ParameterDescription���!3�!D V���R�U��~�U�������������pFrameMenuSpecifies the menu of the new frame-window menu. If  NULL, the menu is not changed. pWindowMenuSpecifies the menu of the new Window pop-up menu. If  NULL, the menu is not changed. 4$�!g�!) "��2�������Remarksb&3�!�"< F�M�2���������7@�������Replaces the menu of an MDI frame window, the Window pop-up menu, or both. After calling Mg�!�"U�!DISetMenu, an application must call the DrawMenuBar member function to update the menu bar. If this call replaces the Window pop-up menu, MDI child-window menu items are removed from the previous Window menu and added to the new Window pop-up menu. If an MDI child window is maximized and this call replaces the MDI frame-window menu, the Control menu and restore controls are removed from the previous frame-window menu and added to the new menu. 4g�!	") "��2�������Returns���"�"' �
�2������A pointer to the frame-window menu replaced by this message. The pointer may be temporary, and should not be stored for later use. 5	"�") "��2�������See Also`*�"K"6 <�T�2�����7@��������CWnd::DrawMenuBar, WM_MDISETMENU �g�"�"1��������1�"%""CMDIFrameWnd::MDITileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMDIFrameWnd')")BK"%") "�2�2�������CMDIFrameWnd::MDITile?�"d", (�&�r�=���~����void MDITile();)%"�"& ��2������Kd"�"2 4�2�R�=��~Q�=�����ParameterDescription�U�"\"/ .���R�=��~�=�����nTypeSpecifies a tiling flag. This parameter can be one of the following flags: C�"�"2 4�"�R��S}Q�������ValueMeaning>�\"�"@ N���R��S}���������������MDITILE_HORIZONTALTiles MDI child windows so that one window appears above another. MDITILE_SKIPDISABLEDPrevents disabled MDI child windows from being tiled. MDITILE_VERTICALTiles MDI child windows so that one window appears beside another. 4�"") "��2�������Remarksi<�"z"- *�x�2���������Arranges all child windows in a tiled format. See Also�P""B T���2����Q�������D˫��������CMDIFrameWnd::MDICascade, CMDIFrameWnd::MDIIconArrange, WM_MDITILE �Zz"�"1g��������2�"�"KF"class CMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_004')")8"�") "��2�������class CMenu8�"	") "��2�������Descriptionv6�"}
"@ N�m�2���������������The CMenu class is an encapsulation of the Windows HMENU. It provides member functions for creating, tracking, updating, and destroying menus. When you create a CMenu object, you associate it with a handle to a menu resource. Then you can use the class member functions to manage the menu. See Also?	"�
"0 0��2�����L
������CObject ]-}
""0 0�Z�2����������Public MembersConstruction/Destruction�P�
"�"N l���R��)���,n���������BaB���������CMenuConstructs a CMenu object. ~CMenuDestroys a CMenu object. ;"�") "�$�2�������Initialization*��""� �=�R��;~���&���������a),��������I�T��������|5_��������?q-���������AttachAttaches a Windows menu handle to a CMenu object. DetachDetaches a Windows menu handle from a CMenu object and returns the handle. CreateMenuCreates an empty menu and attaches it to a CMenu object. CreatePopupMenuCreates an empty pop-up menu and attaches it to a CMenu object. LoadMenuLoads a menu resource from the executable file and attaches it to a CMenu object. %��"A"P n���R��;~��������������/��������LoadMenuIndirectLoads a menu from a menu template in memory and attaches it to a CMenu object. DestroyMenuDestroys the menu attached to a CMenu object and frees any memory that the menu occupied. <"}") "�&�2�������Menu Operationsy5A"A"D V�k�R�ɁS~���xMn^������
�_������DeleteMenuDeletes a specified item from the menu. If the m}"A""enu item has an associated pop-up menu, destroys the handle to the pop-up menu and frees the memory used by it. TrackPopupMenuDisplays a floating pop-up menu at the specified location and tracks the selection of items on the pop-up menu. A}"CA") "�0�2�������Menu Item Operations�A"VC"n ��K�R���}��;�<���������]Ӏ�����T�%������m�Z������-2�6������AppendMenuAppends a new item to the end of this menu. CheckMenuItemPlaces check marks next to or removes check marks from menu items in the pop-up menu. EnableMenuItemEnables, disables, or dims (grays) a menu item. GetMenuItemCountDetermines the number of items in a pop-up or top-level menu. GetMenuItemIDObtains the menu-item identifier for a menu item located at the specified position. i�CA"�E"| ƀ��R���}����wn�������1��������Z1�������By��������ڀ��������������GetMenuStateReturns the status of the specified menu item or the number of items in a pop-up menu. GetMenuStringRetrieves the label of the specified menu item. GetSubMenuRetrieves a pointer to a pop-up menu. InsertMenuInserts a new menu item at the specified position, moving other items down the menu. ModifyMenuChanges an existing menu item at the specified position. RemoveMenuDeletes a menu item with an associated pop-up menu from the specified menu. �WVC"KF"5 :���R���}����������SetMenuItemBitmapsAssociates the specified check-mark bitmaps with a menu item. �\�E"�F"1z��������3�F"G"�"CMenu::AppendMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")=KF"G"(  �*�������CMenu::AppendMenu��F"H"X ~�]�r�=���~�������������������BOOL AppendMenu( UINT nFlags, UINT nIDNewItem = 0, const char FAR* lpNewItem = NULL );BOOL AppendMenu( UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );)G"DH"& ��2������KH"�H"2 4�2�R�e��~Q�e�����ParameterDescription�(DH"'K"p ��Q�R�e��~�e�����������������������������nFlagsSpecifies information about the state of the new menu item when it is added to the menu. It consists of one or more of the values listed in the Remarks section. nIDNewItemSpecifies either the command ID of the new menu item or, if nFlags is set to MF_POPUP, the menu handle (HMENU) of a pop-up menu. The nIDNewItem parameter is ignored (not needed) if nFlags is set to MF_SEPARATOR. lpNewItemSpecifies the content of the new menu item. The interpretation of lpNewItem depends on the setting of nFlags as shown below: `(�H"�K"8 @�P�R��G~Q��
���
���nFlagsInterpretation of lpNewItem/�'K"�M"P n���R��G~������������������MF_OWNERDRAWContains an application-supplied 32-bit value that the application can use to maintain additional data associated with the menu item. This 32-bit value is available to the application when it processes WM_MEASUREITEM and WM_DRAWITEM messages. The value is stored in the itemData member of the structure pointed to by the lParam parameter of those messages. MF_STRINGContains a pointer to a null-terminated string. This is the default interpretation. ���K"�N"M h�K�R�e��~�e����������������The lpNewItem parameter is ignored (not needed) if nFlags is set to MF_SEPARATOR. pBmpPoints to a CBitmap object that will be used as the menu item. 4�M"�N") "��2�������Remarks�t�N"��"9 @���2������������Appends a new item to the end of a menu. The application can specify the state of the menu item by setting values in nFlags. When nIDNewItem specifies a pop-up menu, it becomes part of the menu to which it is appended. If that men�N"��"KF"u is destroyed, the appended menu will also be destroyed. An appended menu should be detached from a CMenu object to avoid conflict. �^�N"0�"= J���r����������������Note:MF_STRING and MF_OWNERDRAW are not valid for the bitmap version of AppendMenu. rG��"��"+ &����������The following list describes the flags that may be set in nFlags: X#0�"��"5 :�F�R�+��}Q�+���
���ValueInterpretation of nFlagsX���"R�"Z ����R�+��}�+�������������������������MF_CHECKEDActs as a toggle in conjunction with MF_UNCHECKED to place the default check mark next to the item. When the application supplies check-mark bitmaps (see SetMenuItemBitmaps), the "check mark on" bitmap is displayed. MF_DISABLEDDisables the menu item so that it cannot be selected, but does not dim it. MF_ENABLEDEnables the menu item so that it can be selected, and restores it from its dimmed state. MF_GRAYEDDisables the menu item so that it cannot be selected, and dims it. '���"y�"L f���R�+��}�+�����������������MF_MENUBARBREAKPlaces item on a new line in static menus or in a new column in pop-up menus. The new pop-up menu column will be separated from the old column by a vertical dividing line. MF_MENUBREAKPlaces item on a new line in static menus or in a new column in pop-up menus. No dividing line is placed between the columns. MF_OWNERDRAWSpecifies that the item is an owner-draw item. When the menu is displayed for the first time, the window that owns the menu receives a WM_MEASUREITEM message, which retrieves the height and width of the menu item. The WM_DRAWITEM message is the one sent whenever the owner must update the visual appearance of the menu item. This option is not valid for a top-level menu item. CR�"��"@ N��R�+��}�+�������������MF_POPUPSpecifies that the menu item has a pop-up menu associated with it. The ID parameter specifies a handle to a pop-up menu that is to be associated with the item. This is used for adding either a top-level pop-up menu or a hierarchical pop-up menu to a pop-up menu item. MF_SEPARATORDraws a horizontal dividing line. Can only be used in a pop-up menu. This line cannot be dimmed, disabled, or highlighted. Other parameters are ignored. MF_STRINGSpecifies that the menu item is a character string. '�y�"�"B R���R�+��}�+�������������MF_UNCHECKEDActs as a toggle in conjunction with MF_CHECKED to remove a check mark next to the item. When the application supplies check-mark bitmaps (see SetMenuItemBitmaps), the "check mark off" bitmap is displayed. �e��"m�"% ��������Each of the following groups lists flags that are mutually exclusive and cannot be used together: *��"��"j ����pȘR������������������������������MF_DISABLED, MF_ENABLED, and MF_GRAYED MF_STRING, MF_OWNERDRAW, MF_SEPARATOR, and the bitmap version MF_MENUBARBREAK and MF_MENUBREAK MF_CHECKED and MF_UNCHECKED ��m�"f�"3 4�9�����������Whenever a menu that resides in a window is changed (whether or not the window is displayed), the application should call CWnd::DrawMenuBar. Returnsi;��"ύ". ,�v���������TRUE if the function is successful; otherwise FALSE. 4f�"�"(  ��������See Also�ύ"�"r ��9�����7@�����By�����������������a),����BaB���������CWnd::DrawMenuBar, CMenu::InsertMenu, CMenu::RemoveMenu, CMenu::SetMenuItemBitmaps, CMenu::Detach, CMenu::~CMenu, ::AppendMenu �X�"��"1���������4��"ӏ"P�"CMenu::AttachEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")9�"ӏ"(  �"�������CMenu::AttachR ��"1�"2 4�@�r�=���~���ӏ"1�"�"���BOOL Attach( HMENU hMenu);)ӏ"Z�"& ��2������K1�"��"2 4�2�R�=��~Q�=�����ParameterDescription_0Z�"�"/ .�`�R�=��~�=�����hMenuSpecifies a handle to a Windows menu. 4��"8�") "��2�������Remarks��"L�"@ N���2���������������Attaches an existing Windows menu to a CMenu object. This function should not be called if a menu is already attached to the CMenu object. The menu handle is stored in the m_hMenu data member. Returnsl=8�"��"/ .�z�2���������TRUE if the operation was successful; otherwise FALSE. 5L�"��") "��2�������See Alsoc'��"P�"< H�N�2����a),����,n�������CMenu::Detach, CMenu::CMenu �_��"��"1`
��������5��"!�"P�"CMenu::CheckMenuItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")AP�"!�") "�0�2�������CMenu::CheckMenuItemu=��"��"8 @�z�r�=���~��������UINT CheckMenuItem( UINT nIDCheckItem, UINT nCheck );)!�"��"& ��2������K��"
�"2 4�2�R����~Q�������ParameterDescription����"��"\ ��)�R����~�����������������������nIDCheckItemSpecifies the menu item to be checked, as determined by nCheck. nCheckSpecifies how to check the menu item and how to determine the item's position in the menu. The nCheck parameter can be a combination of MF_CHECKED or MF_UNCHECKED with MF_BYPOSITION or MF_BYCOMMAND flags. These flags can be combined by using the bitwise-OR operator. They have the following meanings: X#
�"R�"5 :�F�R�U�/~Q�U���
���ValueInterpretation of nCheckp��"��"^ ��%�R�U�/~�U�������������������������MF_BYCOMMANDSpecifies that the parameter gives the command ID of the existing menu item. This is the default if neither MF_BYCOMMAND nor MF_BYPOSITION is set. MF_BYPOSITIONSpecifies that the parameter gives the position of the existing menu item (the first item is at position 0). MF_CHECKEDActs as a toggle in conjunction with MF_UNCHECKED to place the default check mark next to the item. When the application supplies check-mark bitmaps (see SetMenuItemBitmaps), the "check mark on" bitmap is displayed. '�R�"��"B R���R�U�/~�U�������������MF_UNCHECKEDActs as a toggle in conjunction with MF_CHECKED to remove a check mark next to the item. When the application supplies check-mark bitmaps (see SetMenuItemBitmaps), the "check mark off" bitmap is displayed. 4��"�") "��2�������Remarks���"�"; D���2��������������Adds check marks to or removes check marks from menu items in the pop-up menu. The nIDCheckItem parameter specifies the item to be modified. The nIDCheckItem parameter may identify a pop-up menu item as well as a menu item. No special steps are required to check a pop-up menu item. Top-level menu items cannot be checked. A pop-up menu item must be checked by position since it does not have a menu-item identifier associated with it. Returns�g�"��"2 4���2����������The previous state of the item: MF_CHECKED or MF_CHECKED, or -1 if the menu item did not exist. 5�"��") "��2�������See Alsod.��"P�"6 <�\�2������wn��������CMenu::GetMenuState, ::CheckMenuItem �W��"��"1S��������6��"�";#CMenu::CMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")9P�"�") "� �2�������CMenu::CMenu8��"I�", (��r�=���~����CMenu();)�"r�"& ��2������4I�"��") "��2�������Remarks�ar�"@#- *���2���������The menu is not created until you call one o��"@#P�"f the create or load member functions. See Also����";#m ���2����I�T����|5_����?q-������������BaB�����&�������CMenu::CreateMenu, CMenu::CreatePopupMenu, CMenu::LoadMenu, CMenu::LoadMenuIndirect,  CMenu::~CMenu, CMenu::Attach �X@#�#1��������7�#�#�#CMenu::~CMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')"):;#�#) "�"�2�������CMenu::~CMenuA�#?#, (�*�r�=���~����virtual ~CMenu();)�#h#& ��2��������?#f#9 @���������������Destroys the attached menu. If the m_hMenu data member was appended or inserted into another menu, it should be detached from this CMenu object before the destructor destroys it. See Also�?h#�#G ^�~����,n�����/����a),������CMenu::CMenu, CMenu::DestroyMenu, CMenu::Detach �\f#y#1���������8y#�#8	#CMenu::CreateMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")=�#�#(  �*�������CMenu::CreateMenuBy#�#, (�,�r�=���~����BOOL CreateMenu();)�#!#& ��2������4�#U#) "��2�������Remarks&�!#{#T v���2��������;�<������By������/�����Creates a menu and attaches it to the CMenu object. The menu is initially empty. Menu  items can be added by using the AppendMenu or InsertMenu member functions. If the menu is assigned to a window, it is automatically destroyed when the window is destroyed. Before exiting, an application must free system resources associated with a menu if the menu is not assigned to a window. An application frees a menu by calling the DestroyMenu function. 4U#�#) "��2�������ReturnsqB{# #/ .���2���������TRUE if the menu was created successfully; otherwise FALSE. 5�#U#) "��2�������See Also�} #8	#f ����2����,n�����/�����By�����}������;�<�������CMenu::CMenu, CMenu::DestroyMenu, CMenu::InsertMenu, CWnd::SetMenu, ::CreateMenu, CMenu::AppendMenu �aU#�	#1��������9�	#
#@#CMenu::CreatePopupMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")C8	#
#) "�4�2�������CMenu::CreatePopupMenuG�	#T
#, (�6�r�=���~����BOOL CreatePopupMenu();)
#}
#& ��2������4T
#�
#) "��2�������Remarks�C}
#G
#S t���2��������;�<������By����
�_������Creates a pop-up menu and attaches it to the CMenu object. The menu is initially empty. Menu items can be added by using the AppendMenu or InsertMenu member functions. The application can add the pop-up menu to an existing menu or pop-up menu. TrackPopupMenu may be used to display this menu as a floating pop-up menu and to track selections on the pop-up menu. If the menu is assigned to a window, it is automatically destroyed when the window is destroyed. If the menu is added to an existing menu, it is automatically destroyed when that menu is destroyed. 
��
#T#: B���2�����/��������Before exiting, an application must free system resources associated with a pop-up menu if the menu is not assigned to a window. An application frees a menu by calling the DestroyMenu function. ReturnsxIG
#�#/ .���2���������TRUE if the pop-up menu was successfully created; otherwise FALSE. 5T##) "��2�������See Also���#@#g ���2����I�T�����By�����}����
�_������;�<�������CMenu::CreateMenu, CMenu::InsertMenu, CWnd::SetMenu, CMenu::TrackPopupMenu, ::CreatePopupMenu, CMenu::AppendMenu #@#8	#�\#�@#1���������:�@#�@#-G#CMenu::DeleteMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")>@#�@#) "�*�2�������CMenu::DeleteMenuo7�@#FA#8 @�n�r�=���~��������BOOL DeleteMenu( UINT nPosition, UINT nFlags );)�@#oA#& ��2������KFA#�A#2 4�2�R�=��~Q�=�����ParameterDescription��oA#�B#J b�U�R�=��~�=���������������nPositionSpecifies the menu item that is to be deleted, as determined by nFlags. nFlagsThe following list shows how nFlags is used to interpret nPosition. \'�A#
C#5 :�N�R��/~Q����
���nFlagsInterpretation of nPositionj&�B#tD#D V�M�R��/~��������������MF_BYCOMMANDSpecifies that the parameter gives the command ID of the existing menu item. This is the default if neither MF_BYCOMMAND nor MF_BYPOSITION is set. MF_BYPOSITIONSpecifies that the parameter gives the position of the existing menu item (the first item is at position 0). 4
C#�D#) "��2�������Remarks�LtD#/F#; D���2��������������Deletes an item from the menu. If the menu item has an associated pop-up menu, DeleteMenu destroys the handle to the pop-up menu and frees the memory used by the pop-up menu. Whenever a menu that resides in a window is changed (whether or not the window is displayed), the application must call CWnd::DrawMenuBar. Returnsj;�D#�F#/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5/F#�F#) "��2�������See Also_)�F#-G#6 <�R�2�����7@��������CWnd::DrawMenuBar, ::DeleteMenu �]�F#�G#1���������;�G#�G#�J#CMenu::DestroyMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")?-G#�G#) "�,�2�������CMenu::DestroyMenuC�G#=H#, (�.�r�=���~����BOOL DestroyMenu();)�G#fH#& ��2������4=H#�H#) "��2�������Remarks+�fH#�I#@ N���2���������������Destroys the menu and any Windows system resources that were used. The menu is detached from the CMenu object before it is destroyed. The Windows DestroyMenu function is automatically called in the CMenu destructor. Returnse6�H#*J#/ .�l�2���������TRUE if the menu is destroyed; otherwise FALSE. 5�I#_J#) "��2�������See Also\&*J#�J#6 <�L�2����BaB���������CMenu::~CMenu, ::DestroyMenu �X_J#DK#1���������<DK#~K#�M#CMenu::DetachEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')"):�J#~K#) "�"�2�������CMenu::Detach?DK#�K#, (�&�r�=���~����HMENU Detach();)~K#�K#& ��2������4�K#L#) "��2�������Remarks��K#�L#? N���2���������������Detaches a Windows menu from a CMenu object and returns the handle. The m_hMenu data member is set to NULL. Returns�TL#^M#2 4���2����������The handle, of type HMENU, to a Windows menu, if successful; otherwise NULL. 5�L#�M#) "��2�������See Alsod(^M#�M#< H�P�2����BaB�����&�������CMenu::~CMenu, CMenu::Attach �`�M#�N#15
��������=�N#�N#b�#CMenu::EnableMenuItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")B�M#�N#) "�2�2�������CMenu::EnableMenuItemx@�N#BO#8 @���r�=���~��������UINT EnableMenuItem( UINT nIDEnableItem, UINT nEnable );)�N#kO#& ��2������KBO#�O#2 4�2�R����~Q�������ParameterDescription�kO##\ ��I�R����~�����������������O##�M#�������nIDEnableItemSpecifies the menu item to be enabled, as determined by nEnable. This parameter can specify pop-up menu items as well as standard menu items. nEnableSpecifies the action to take. It can be a combination of MF_DISABLED, MF_ENABLED, or MF_GRAYED, with MF_BYCOMMAND or MF_BYPOSITION. These values can be combined by using the bitwise-OR operator. These values have the following meanings: Y$�O#�#5 :�H�R�g�/~Q�g���
���ValueInterpretation of nEnable;�#V�#T v���R�g�/~�g���������������������MF_BYCOMMANDSpecifies that the parameter gives the command ID of the existing menu item. This is the default if neither MF_BYCOMMAND nor MF_BYPOSITION is set. MF_BYPOSITIONSpecifies that the parameter gives the position of the existing menu item (the first item is at position 0). MF_DISABLEDDisables the menu item so that it cannot be selected, but does not dim it. MF_ENABLEDEnables the menu item so that it can be selected, and restores it from its dimmed state. �Q�#ք#/ .���R�g�/~�g�����MF_GRAYEDDisables the menu item so that it cannot be selected, and dims it. 4V�#
�#) "��2�������Remarks2�ք#<�#_ ����2������I�T�����By������ڀ��������������Enables, disables, or dims a menu item. The CreateMenu, InsertMenu, ModifyMenu, and LoadMenuIndirect functions can also set the state (enabled, disabled, or grayed) of a menu item. Returns�T
�#Ȇ#8 @���2������������Previous state (MF_DISABLED, MF_ENABLED, or MF_GRAYED) or -1 if not valid. 5<�#��#) "��2�������See Alsoe/Ȇ#b�#6 <�^�2������wn��������CMenu::GetMenuState, ::EnableMenuItem �b��#��#1���������>��#9�#��#CMenu::GetMenuItemCountEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")Db�#9�#) "�6�2�������CMenu::GetMenuItemCountG��#��#, (�6�r�=���~����UINT GetMenuItemCount())9�#��#& ��2������4��#݈#) "��2�������RemarksxK��#U�#- *���2���������Determines the number of items in a pop-up or top-level menu. ReturnsvP݈#ˉ#& ���2������The number of items in the menu if the function is successful; otherwise -1. 5U�#�#) "��2�������See Also�\ˉ#��#N l���2�����r����-2�6�����Z1��������CWnd::GetMenu, CMenu::GetMenuItemID, CMenu::GetSubMenu, ::GetMenuItemCount �_�#:�#1|��������?:�#{�#Ə#CMenu::GetMenuItemIDEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")A��#{�#) "�0�2�������CMenu::GetMenuItemID]+:�#؋#2 4�V�r�=���~������UINT GetMenuItemID( int nPos ) const;){�#�#& ��2������K؋#L�#2 4�2�R�=��~Q�=�����ParameterDescription�[�#֌#/ .���R�=��~�=�����nPosSpecifies the position (zero-based) of the menu item whose ID is being retrieved. 4L�#
�#) "��2�������Remarks�i֌#��#3 6���2�����������Obtains the menu-item identifier for a menu item located at the position defined by nPos. ReturnsA
�#�#3 4��2����������The item ID for the specified item in a pop-up menu if the function is successful. If the specified item is a pop-up menu (as opposed to an item within the pop-up menu), the return value is -1. If nPos corresponds to a SEPARATOR menu item, the return value is 0. 5��#�#) "��2�������See Also�\�#Ə#N l���2�����r����m�Z�����Z1��������CWnd::GetMenu, CMenu::GetMenuItemCount, CMenu::GetSubMenu, ::GetMenuItemID �^�#a�#1�
��������@a�#��#R�#CMenu::GeƏ#a�#Ə#tMenuStateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")@Ə#��#) "�.�2�������CMenu::GetMenuStateq9a�#�#8 @�r�r�=���~��������UINT GetMenuState( UINT nID, UINT nFlags ) const;)��#;�#& ��2������K�#��#2 4�2�R�=��~Q�=�����ParameterDescription��;�#Y�#D V��R�=��~�=�������������nIDSpecifies the menu item ID, as determined by nFlags. nFlagsSpecifies the nature of nID. It can be one of the following values: X#��#��#5 :�F�R��/~Q����
���ValueInterpretation of nFlagsj&Y�#�#D V�M�R��/~��������������MF_BYCOMMANDSpecifies that the parameter gives the command ID of the existing menu item. This is the default if neither MF_BYCOMMAND nor MF_BYPOSITION is set. MF_BYPOSITIONSpecifies that the parameter gives the position of the existing menu item (the first item is at position 0). 4��#O�#) "��2�������Remarks�d�#��#- *���2���������Returns the status of the specified menu item or the number of items in a pop-up menu. Returns��O�#��#3 4��2����������The value -1 if the specified item does not exist. If nId identifies a pop-up menu, the high-order byte contains the number of items in the pop-up menu and the low-order byte contains the menu flags associated with the pop-up menu. Otherwise the return value is a mask (Boolean OR) of the values from the following list (this mask describes the status of the menu item that nId identifies): C��#��#2 4�"�R�+��}Q�+�����ValueMeaning}+��#a�#R r�W�R�+��}�+���������������������MF_CHECKEDActs as a toggle in conjunction with MF_UNCHECKED to place the default check mark next to the item. When the application supplies check-mark bitmaps (see SetMenuItemBitmaps), the "check mark on" bitmap is displayed. MF_DISABLEDDisables the menu item so that it cannot be selected, but does not dim it. MF_ENABLEDEnables the menu item so that it can be selected, and restores it from its dimmed state. Note that the value of this constant is zero; an application should not test against zero for failure when using this value. �G��#��#H ^���R�+��}�+�����������������MF_GRAYEDDisables the menu item so that it cannot be selected, and dims it. MF_MENUBARBREAKPlaces item on a new line in static menus or in a new column in pop-up menus. The new pop-up menu column will be separated from the old column by a vertical dividing line. MF_MENUBREAKPlaces item on a new line in static menus or in a new column in pop-up menus. No dividing line is placed between the columns. MF_SEPARATORDraws a horizontal dividing line. Can only be used in a pop-up menu. This line cannot be dimmed, disabled, or highlighted. Other parameters are ignored. �ba�#��#B R���R�+��}�+�������������MF_UNCHECKEDActs as a toggle in conjunction with MF_CHECKED to remove a check mark next to the item. When the application supplies check-mark bitmaps (see SetMenuItemBitmaps), the "check mark off" bitmap is displayed. Note that the value of this constant is zero; an application should not test against zero for failure when using this value. 4��#��#(  ��������See Also�I��#R�#A R����������]Ӏ���T�%������::GetMenuState, CMenu::CheckMenuItem, CMenu::EnableMenuItem �_��#��#1T��������A��#"�#b$CMenu::GetMenuStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")@R�#"�#(  �0�������CMenu::GetMenuString�`��#��#D X���r�=���~������������int GetMenuString( UINT nIDItem, LPSTR lpString, int nMaxCount, UINT nFlags ) const;)"�#$& ��2��������#$R�#K��#W$2 4�2�R�=��~Q�=�����ParameterDescription�$h$X ~�s�R�=��~�=����������x�
1�����������nIDItemSpecifies the integer identifier of the menu item or the offset of the menu item in the menu, depending on the value of nFlags. lpStringPoints to the buffer that is to receive the label. You can pass a CString object for this parameter. nMaxCountSpecifies the maximum length (in bytes) of the label to be copied. If the label is longer than the maximum specified in nMaxCount, the extra characters are truncated. �kW$$5 :���R�=��~�=�������nFlagsSpecifies the interpretation of the nIDItem parameter. It can be one of the following values: ^&h$f$8 @�L�R��/~Q��
���
���nFlagsInterpretation of nIDItemj&$�$D V�M�R��/~��������������MF_BYCOMMANDSpecifies that the parameter gives the command ID of the existing menu item. This is the default if neither MF_BYCOMMAND nor MF_BYPOSITION is set. MF_BYPOSITIONSpecifies that the parameter gives the position of the existing menu item (the first item is at position 0). 4f$$) "��2�������Remarks��$"$5 8���2������������Copies the label of the specified menu item to the specified buffer. The nMaxCount parameter should be one larger than the number of characters in the label to accommodate the null character that terminates a string. Returns�a$�$& ���2������Specifies the actual number of bytes copied to the buffer, not including the null terminator. 5"$�$) "��2�������See Also�B�$b$B T���2�����r����-2�6��������CWnd::GetMenu, CMenu::GetMenuItemID, ::GetMenuString �\�$�$1\��������B�$-$X$CMenu::GetSubMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")>b$-$) "�*�2�������CMenu::GetSubMenu\*�$�$2 4�T�r�=���~������CMenu* GetSubMenu( int nPos ) const;)-$�$& ��2������K�$�$2 4�2�R�=��~Q�=�����ParameterDescription���$�	$0 .�y�R�=��~�=�����nPosSpecifies the position of the pop-up menu contained in the menu. Position values start at 0 for the first menu item. The pop-up menu's identifier cannot be used in this function. 4�$
$) "��2�������Remarkso<�	$�
$3 6�x�2�����������Retrieves the CMenu object of a pop-up menu. Returns[
$�$E X�-�2����������������A pointer to a CMenu object whose m_hMenu member contains a handle to the pop-up menu if a pop-up menu exists at the given position; otherwise NULL. If a CMenu object does not exist, then a temporary one is created. The CMenu pointer returned should not be stored. 5�
$$) "��2�������See Also<�$X$* $�$�2��������::GetSubMenu �\$�$1T��������C�$#
$Q�$CMenu::InsertMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")>X$#
$) "�*�2�������CMenu::InsertMenu6��$Y$d ����r�=���~�����������������������BOOL InsertMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, const char FAR* lpNewItem = NULL );BOOL InsertMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );)#
$�$& ��2������KY$�$2 4�2�R�e��~Q�e�����ParameterDescription���$�$< F�}�R�e��~�e���������nPositionSpecifies the menu item before which the new menu item is to be inserted. The interpretation of nPosition depends on the setting of nFlags, as shown in the following list: \'�$/@$5 :�N�R�7�/~Q�7���
���nFl�$/@$X$agsInterpretation of nPosition�t�$�A$L f���R�7�/~�7�����������������MF_BYCOMMANDSpecifies that the parameter gives the command ID of the existing menu item. This is the default if neither MF_BYCOMMAND nor MF_BYPOSITION is set. MF_BYPOSITIONSpecifies that the parameter gives the position of the existing menu item (the first item is at position 0). If nPosition is -1, the new menu item is appended to the end of the menu. �7/@$�D$z €o�R�e��~�e������;�<��������������������������nFlagsSpecifies how nPosition is interpreted and information about the state of the new menu item when it is added to the menu. For a list of the flags that may be set, see the AppendMenu member function. To specify more than one value, use the bitwise-OR operator to combine them with the MF_BYCOMMAND or MF_BYPOSITION flag. nIDNewItemSpecifies either the command ID of the new menu item or, if nFlags is set to MF_POPUP, the menu handle (HMENU) of the pop-up menu. nIDNewItem is ignored (not needed) if nFlags is set to MF_SEPARATOR. ���A$kE$< F��R�e��~�e���������lpNewItemSpecifies the content of the new menu item. The interpretation of lpNewItem depends on the setting of nFlags as shown below: \'�D$�E$5 :�N�R��G~Q����
���nFlagsInterpretation of lpNewItemSkE$H$P n��R��G~������������������MF_OWNERDRAWContains an application-supplied 32-bit value that the application can use to maintain additional data associated with the menu item. This 32-bit value is available to the application in the itemData member of the structure pointed to by the lParam parameter of the WM_MEASUREITEM and WM_DRAWITEM messages. These messages are sent when the menu item is initially displayed or is changed. MF_STRINGContains a long pointer to a null-terminated string. This is the default interpretation. ���E$I$M h�K�R�e��~�e����������������The lpNewItem parameter is ignored (not needed) if nFlags is set to MF_SEPARATOR. pBmpPoints to a CBitmap object that will be used as the menu item. 4H$@I$) "��2�������Remarks�BI$�K$G \���2������������������Inserts a new menu item at the position specified by nPosition and moves other items down the menu. The application can specify the state of the menu item by setting values in nFlags. Whenever a menu that resides in a window is changed (whether or not the window is displayed), the application should call CWnd::DrawMenuBar. When nIDNewItem specifies a pop-up menu, it becomes part of the menu in which it is inserted. If that menu is destroyed, the inserted menu will also be destroyed. An inserted menu should be detached from a CMenu object to avoid conflict. ��@I$�N$3 4��2����������If the active multiple document interface (MDI) child window is maximized and an application inserts a pop-up menu into the MDI application's menu by calling this function and specifying the MF_BYPOSITION flag, the menu is inserted one position farther left than expected. This happens because the System menu of the active MDI child window is inserted into the first position of the MDI frame window's menu bar. To position the menu properly, the application must add 1 to the position value that would otherwise be used. An application can use the WM_MDIGETACTIVE message to determine whether the currently active child window is maximized. 4�K$�N$) "��2�������Returnsj;�N$$O$/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5�N$YO$) "��2�������See Also��$O$Q�$g ���2����;�<������7@����������a),����BaB���������CMenu::AppendMenu, CWnd::DrawMenuBar, CMenu::SetMenuItYO$Q�$X$emBitmaps, CMenu::Detach, CMenu::~CMenu, ::InsertMenu �ZYO$܀$1��������D܀$�$��$CMenu::LoadMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")<Q�$�$) "�&�2�������CMenu::LoadMenu�U܀$��$? N���r�=���~�����������BOOL LoadMenu( const char FAR* lpMenuName );BOOL LoadMenu( UINT nIDMenu );)�$Ձ$& ��2������K��$ �$2 4�2�R�M��~Q�M�����ParameterDescription��Ձ$��$8 >�M�R�M��~�M���������lpMenuNamePoints to a null-terminated string that contains the name of the menu resource to load. nIDMenuSpecifies the menu ID of the menu resource to load. 4 �$2�$) "��2�������Remarksr1��$��$A P�c�2��������/��������Loads a menu resource from the application's executable file and attaches it to the CMenu object. Before exiting, an application must free system resources associated with a menu if the menu is not assigned to a window. An application frees a menu by calling the DestroyMenu function. ReturnsyJ2�$�$/ .���2���������TRUE if the menu resource was loaded successfully; otherwise FALSE. 5��$R�$) "��2�������See Also�]�$��$N l���2����;�<�����/���������������CMenu::AppendMenu, CMenu::DestroyMenu, CMenu::LoadMenuIndirect, ::LoadMenu. �bR�$��$1���������E��$Ԇ$m�$CMenu::LoadMenuIndirectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")D��$Ԇ$) "�6�2�������CMenu::LoadMenuIndirectp>��$D�$2 4�|�r�=���~������BOOL LoadMenuIndirect( const BYTE FAR* lpMenuTemplate );)Ԇ$m�$& ��2������KD�$��$2 4�2�R����~Q�������ParameterDescription��m�$��$< F�G�R����~�����������lpMenuTemplatePoints to a menu template (which is a single MENUITEMTEMPLATEHEADER structure and a collection of one or more MENUITEMTEMPLATE structures). 4��$ˈ$) "��2�������Remarks�2��$b�$e ��e�2���������������;�<��������������Loads a resource from a menu template in memory and attaches it to the CMenu object. A menu template is a header followed by a collection of one or more MENUITEMTEMPLATE structures, each of which may contain one or more menu items and pop-up menus. The version number should be 0. The mtOption flags should include MF_END for the last item in a pop-up list and for the last item in the main list. See AppendMenu for other flags. The mtId member must be omitted from the MENUITEMTEMPLATE structure when MF_POPUP is specified in mtOption. �lˈ$�$G \���2����������/��������The space allocated for the MENUITEMTEMPLATE structure must be large enough for mtString to contain the name of the menu item as a null-terminated string. Before exiting, an application must free system resources associated with a menu if the menu is not assigned to a window. An application frees a menu by calling the DestroyMenu function. ReturnsyJb�$��$/ .���2���������TRUE if the menu resource was loaded successfully; otherwise FALSE. 5�$Í$) "��2�������See Also�\��$m�$N l���2����/����?q-�������;�<�������CMenu::DestroyMenu, CMenu::LoadMenu, ::LoadMenuIndirect, CMenu::AppendMenu �\Í$��$1���������F��$8�$i�$CMenu::ModifyMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")>m�$8�$) "�*�2�������CMenu::ModifyMenu4���$x�$d ����r�=���~�����������������������BOOL ModifyMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, const char FAR* lpNewItem8�$x�$m�$ = NULL);BOOL ModifyMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp);)8�$��$& ��2������Kx�$��$2 4�2�R�e��~Q�e�����ParameterDescription����$��$< F�5�R�e��~�e���������nPositionSpecifies the menu item to be changed. The interpretation of nPosition depends on the setting of nFlags as shown in the following list: \'��$�$5 :�N�R�7�/~Q�7���
���nFlagsInterpretation of nPositionj&��$��$D V�M�R�7�/~�7�������������MF_BYCOMMANDSpecifies that the parameter gives the command ID of the existing menu item. This is the default if neither MF_BYCOMMAND nor MF_BYPOSITION is set. MF_BYPOSITIONSpecifies that the parameter gives the position of the existing menu item (the first item is at position 0). '��$��$n ��s�R�e��~�e������;�<����������������������nFlagsSpecifies how nPosition is interpreted and gives information about the changes to be made to the menu item. For a list of flags that may be set, see the AppendMenu member function. nIDNewItemSpecifies either the command ID of the modified menu item or, if nFlags is set to MF_POPUP, the menu handle (HMENU) of a pop-up menu. The nIDNewItem parameter is ignored (not needed) if nFlags is set to MF_SEPARATOR. ����$z�$< F��R�e��~�e���������lpNewItemSpecifies the content of the new menu item. The interpretation of lpNewItem depends on the setting of nFlags as shown below: \'��$��$5 :�N�R��G~Q����
���nFlagsInterpretation of lpNewItem�Sz�$s�$J b���R��G~����������������MF_OWNERDRAWContains an application-supplied 32-bit value that the application can use to maintain additional data associated with the menu item. This 32-bit value is available to the application when it processes MF_MEASUREITEM and MF_DRAWITEM. MF_STRINGContains a long pointer to a null-terminated string or to a CString. ����$e�$M h�K�R�e��~�e����������������The lpNewItem parameter is ignored (not needed) if nFlags is set to MF_SEPARATOR. pBmpPoints to a CBitmap object that will be used as the menu item. 4s�$��$) "��2�������Remarksk+e�$�$@ N�W�2���������������Changes an existing menu item at the position specified by nPosition. The application specifies the new state of the menu item by setting values in nFlags. If this function replaces a pop-up menu associated with the menu item, it destroys the old pop-up menu and frees the memory used by the pop-up menu. When nIDNewItem specifies a pop-up menu, it becomes part of the menu in which it is inserted. If that menu is destroyed, the inserted menu will also be destroyed. An inserted menu should be detached from a CMenu object to avoid conflict. j��$n�$L f�=�2���������]Ӏ���T�%��������Whenever a menu that resides in a window is changed (whether or not the window is displayed), the application should call CWnd::DrawMenuBar. To change the attributes of existing menu items, it is much faster to use the CheckMenuItem and EnableMenuItem functions. Returnsj;�$��$/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5n�$
�$) "��2�������See Also\���$i�$� 䀣�2����;�<������By������]Ӏ����7@����T�%����������a),����BaB���������CMenu::AppendMenu, CMenu::InsertMenu, CMenu::CheckMenuItem, CWnd::DrawMenuBar, CMenu::EnableMenuItem, CMenu::SetMenuItemBitmaps, CMenu::Detach, CMenu::~CMenu, ::ModifyMenu �\
�$%1`��������G%J%y%CMenu::RemoveMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")i�$%i�$>i�$J%) "�*�2�������CMenu::RemoveMenuo7%�%8 @�n�r�=���~��������BOOL RemoveMenu( UINT nPosition, UINT nFlags );)J%�%& ��2������K�%-%2 4�2�R�=��~Q�=�����ParameterDescription���%%< F�5�R�=��~�=���������nPositionSpecifies the menu item to be removed. The interpretation of nPosition depends on the setting of nFlags as shown in the following list: `(-%c%8 @�P�R��/~Q��
���
���nFlagsInterpretation of nPositionj&%�%D V�M�R��/~��������������MF_BYCOMMANDSpecifies that the parameter gives the command ID of the existing menu item. This is the default if neither MF_BYCOMMAND nor MF_BYPOSITION is set. MF_BYPOSITIONSpecifies that the parameter gives the position of the existing menu item (the first item is at position 0). j5c%7%5 :�j�R�=��~�=�������nFlagsSpecifies how nPosition is interpreted. 4�%k%) "��2�������Remarks��7%X%G \�M�2������Z1�������������Deletes a menu item with an associated pop-up menu from the menu. It does not destroy the handle for a pop-up menu, allowing the menu to be reused. Before calling this function, the application may call GetSubMenu to retrieve the pop-up CMenu object for reuse. Whenever a menu that resides in a window is changed (whether or not the window is displayed), the application must call CWnd::DrawMenuBar. Returnsj;k%�%/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5X%�%) "��2�������See Also�@�%y%B T���2�����7@�����Z1��������CWnd::DrawMenuBar, CMenu::GetSubMenu, ::RemoveMenu �d�%%1��������H%T%�B%CMenu::SetMenuItemBitmapsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")Fy%T%) "�:�2�������CMenu::SetMenuItemBitmaps�|%	%D X���r�=���~������������BOOL SetMenuItemBitmaps( UINT nPosition, UINT nFlags, const CBitmap* pBmpUnchecked, const CBitmap* pBmpChecked);)T%=	%& ��2������K	%�	%2 4�2�R����~Q�������ParameterDescription��=	%^
%< F�5�R����~�����������nPositionSpecifies the menu item to be changed. The interpretation of nPosition depends on the setting of nFlags as shown in the following list: \'�	%�
%5 :�N�R�m�/~Q�m���
���nFlagsInterpretation of nPositionj&^
%$%D V�M�R�m�/~�m�������������MF_BYCOMMANDSpecifies that the parameter gives the command ID of the existing menu item. This is the default if neither MF_BYCOMMAND nor MF_BYPOSITION is set. MF_BYPOSITIONSpecifies that the parameter gives the position of the existing menu item (the first item is at position 0). ��
%=
%F Z���R����~�����������������nFlagsSpecifies how nPosition is interpreted. pBmpUncheckedSpecifies the bitmap to use for menu items that are not checked. pBmpCheckedSpecifies the bitmap to use for menu items that are checked. 4$%q
%) "��2�������Remarks}==
%@%@ N�{�2���������������Associates the specified bitmaps with a menu item. Whether the menu item is checked or unchecked, Windows displays the appropriate bitmap next to the menu item. If either pBmpUnchecked or pBmpChecked is NULL, then Windows displays nothing next to the menu item for the corresponding attribute. If both parameters are NULL, Windows uses the default check mark when the item is checked and removes the check mark when the item is unchecked. When the menu is destroyed, these bitmaps are not destroyed. It is the responsibility of the application to destroy them. q
%@%y%��q
%�A%5 8��2������������When the menu is destroyed, these bitmaps are not destroyed; the application must destroy them. The Windows ::GetMenuCheckMarkDimensions function retrieves the dimensions of the default check mark used for menu items. The application uses these values to determine the appropriate size for the bitmaps supplied with this function. Get the size, create your bitmaps, then set them. Returnsj;@%8B%/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5�A%mB%) "��2�������See Alsoj:8B%�B%0 0�t�2����������::GetMenuCheckMarkDimensions, ::SetMenuItemBitmaps �`mB%hC%17��������IhC%�C%�O%CMenu::TrackPopupMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMenu')")B�B%�C%) "�2�2�������CMenu::TrackPopupMenu�khC%_D%J d���r�=���~��������������BOOL TrackPopupMenu( UINT nFlags, int x, int y, const CWnd* pWnd, LPRECT lpRectReserved = 0);)�C%�D%& ��2������K_D%�D%2 4�2�R����~Q�������ParameterDescription�{�D%}E%/ .���R����~�������nFlagsSpecifies a screen-position flag and a mouse-button flag. The screen-position flag can be one of the following: C�D%�E%2 4�"�R����}Q�������ValueMeaning�L}E%^G%R r���R����}���������������������TPM_CENTERALIGNCenters the pop-up menu horizontally relative to the coordinate specified by x. TPM_LEFTALIGNPositions the pop-up menu so that its left side is aligned with the coordinate specified by x. TPM_RIGHTALIGNPositions the pop-up menu so that its right side is aligned with the coordinate specified by x. c7�E%�G%, (�n�R����~������The mouse-button flag can be one of the following: C^G%H%2 4�"�R����}Q�������ValueMeaning���G%�H%8 >�+�R����}�����������TPM_LEFTBUTTONCauses the pop-up menu to track the left mouse button. TPM_RIGHTBUTTONCauses the pop-up menu to track the right mouse button. �mH%�K%d ����R����~���������������������������xSpecifies the horizontal position in screen coordinates of the pop-up menu. Depending on the value of the nFlags parameter, the menu can be left-aligned, right-aligned, or centered relative to this position. ySpecifies the vertical position in screen coordinates of the top of the menu on the screen. pWndIdentifies the window that owns the pop-up menu. This window receives all WM_COMMAND messages from the menu. In Windows 3.1, the window does not receive WM_COMMAND messages until TrackPopupMenu returns. In Windows 3.0, the window receives WM_COMMAND messages before TrackPopupMenu returns. �M�H%7M%H ^���R����~���������������lpRectReservedPoints to a RECT structure or CRect object that contains the screen coordinates of a rectangle within which the user can click without dismissing the pop-up menu. If this parameter is NULL, the pop-up menu is dismissed if the user clicks outside the pop-up menu. This must be NULL for Windows version 3.0. 4�K%kM%) "��2�������Remarks��7M%PN%. *�o�2���������Displays a floating pop-up menu at the specified location and tracks the selection of items on the pop-up menu. A floating pop-up menu can appear anywhere on the screen. Returnsj;kM%�N%/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5PN%�N%) "��2�������See Also��N%�O%B T���2����|5_�����Z1��������CMenu::CreatePopupMenu, CMenu::GetSubMenu, ::TrackPopupMenu, {filename|CMENU.REF}    p. {page|1} of {numpages|25} �a�N%N�%1]��������JN�%��%��%class CModalDialogEnableButton�O%N�%�O%("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')")?�O%��%) "�,�2�������class CModalDialog8N�%ŀ%) "��2�������Description���%у%5 8���2������������The CModalDialog class provides modal dialog boxes. In this type of dialog box, the user must respond before any processing outside the dialog box is possible. This is untrue for modeless dialog boxes. Except in the most trivial cases, such as an About dialog box, you must derive your own modal dialog class from CModalDialog. In your derived class, you can add member variables and member functions to specify the behavior of the dialog box. Add member variables to store data entered by the user via the dialog box controls or to store data for display through the controls. Add member functions to set and get this data. Add message-handler member functions to process messages for the controls in the dialog box. =ŀ%�%9 @�	�2�����+�������Like other classes derived from class CWnd, classes derived from CModalDialog need their own message maps. If you declare any message-handler member functions, you must also provide a message map that connects the Windows messages with your handlers. ��у%��%P n��r���������:d������}��U����׸$q�����Note:The three most common functions, CDialog::OnInitDialog, OnOK, and OnCancel, do not need message-map entries. �|�%��%? L����������Tˀ���	���Create a modal dialog object by constructing it. To do this, create a dialog object using the CModalDialog constructor, as shown in the example below. Once the dialog object has been constructed, call its DoModal member function to run the dialog box. For example, to construct a modal dialog object of class CMyModal and run the dialog box, use the following coding: '��%‡%$ ������T.��%�%& �\�0���	���CMyModal  myModalDlg;myModalDlg.DoModal();�‡%,�%F Z���������}��U������Tˀ����When the user clicks one of the dialog-box pushbuttons, such as OK or Cancel, the dialog box closes and it is removed from the screen. After the user closes the dialog box, its member variables are accessed through the member functions that you defined to get information entered by the user. For example, for a modal dialog box that has an editable text control, you can override the OnOK message-handler function in your derived modal dialog class so that when the user clicks the OK button, OnOK retrieves the text entered in the control and stores it in a data member of the dialog object. Later, after DoModal returns, you can call a member function of the dialog object to retrieve the stored text. C��%o�%j �������������}��U����׸$q�����:d������:d���������You are responsible for supplying the member variables and member functions needed to access the dialog's data. Declare them in the class you derive from CModalDialog. CDialog::EndDialog is called automatically in OnOK and OnCancel when the user closes the dialog box. If the dialog box requires some initialization, override the CDialog::OnInitDialog member function to perform the initialization. For example, if an edit field in the dialog box is to display a default value that the user can accept or replace, override OnInitDialog to initialize the default text in the edit field. OnInitDialog is called automatically while the dialog is being created before the dialog box appears on the screen. 4,�%��%(  ��������See Also�o�%��%r ��U����Tˀ��㈴!�����Ճ����}��U����׸$q������������CModalDialog::DoModal, CDialog::EndDialog, CWnd::MessageBox, CModalDialog::OnOK, CModalDialog::OnCancel, WM_INITDIALOG, WM_CLOSE, WM_SETFONT ]-��%(�%0 0�Z�2����������Public Members��%(�%�O%Construction/Destruction����%��%H ^��R�}��~�}�8�|��������Tˀ����CModalDialogConstructs a CModalDialog object and stores the parameters for use when the member function DoModal is called. ;(�%3�%) "�$�2�������Initialization���%A�%H ^���R����~����'�X�������Tˀ����CreateIndirectInitializes a CModalDialog object as the second phase of indirect dialog-box creation (nonresource based). The parameters are stored until the function DoModal is called. 73�%x�%) "��2�������Operationsq<A�%��%5 :�x�R��
��Tˀ�����DoModalInvokes the dialog box and returns when done. 9x�%"�%) "� �2�������Overridables�#��%��%h ��G�R�+��~�+�}��U�����Tˀ������׸$q�����Tˀ������OnOKOverride this member to perform the OK button action. The default terminates the dialog box, and DoModal will return IDOK. OnCancelOverride this member to perform the Cancel button action. The default terminates the dialog box, and DoModal will return IDCANCEL. �l"�%J�%1.��������KJ�%��%��%CModalDialog::CModalDialogEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CModalDialog')")F��%��%(  �<�������CModalDialog::CModalDialog��J�%m�%L f�#�r�=���~���������������CModalDialog( const char FAR* lpTemplateName, CWnd* pParentWnd = NULL );CModalDialog( UINT nIDTemplate, CWnd* pParentWnd = NULL );)��%��%& ��2������Km�%��%2 4�2�R���w~
�������ParameterDescriptionw-��%X�%J b�[�R���w~����������+�������lpTemplateNameContains a string that is the name of a dialog-box resource template. pParentWndPoints to the parent window object (of type CWnd) of the dialog object. If it is NULL, the dialog object's parent window is set to the main application window, as shown in the following code: -��%��%* $��P��w~�����lEX�%��%' ���0����	���if( pParentWnd == NULL )    pParentWnd = AfxGetApp()->m_pMainWnd;n?��%_�%/ .�~�R���w~�������nIDTemplateContains a dialog resource template ID number. 4��%��%) "��2�������Remarks�__�%9�%G \���2����������y����������Provides two public constructors, with different argument signatures, to permit the construction of CModalDialog objects directly or from resource templates. When you construct the dialog object to be used with CreateIndirect pass NULL for the first parameter because there is no resource file template to be used in this case. See AlsoT$��%��%0 0�H�2�����'�X������CModalDialog::CreateIndirect �n9�%,�%1x��������L,�%u�%V&CModalDialog::CreateIndirectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CModalDialog')")I ��%u�%) "�@�2�������CModalDialog::CreateIndirectf4,�%��%2 4�h�r�=���~������BOOL CreateIndirect( HANDLE hDialogTemplate );)u�%�%& ��2������K��%O�%2 4�2�R����~Q�������ParameterDescription��%j�%6 :���R����~���������hDialogTemplateContains a resource handle to global memory containing a dialog-box resource template. The template data structure is of type DLGTEMPLATE, which identifies the block of memory used as a dialog-box template. 4O�%��%) "��2�������Remarks�j�%�&^ ��q�2������������������y����Tˀ����This member function uses a dialog resource constructed in memory to initialize a modal dialog object. The resource has the form of a DLGTEMPLATE structure. For more information on this structure, see the Windows Software Development Kit documentation. To ��%�&��%create a modal dialog indirectly, first create a DLGTEMPLATE structure in memory and retain a HANDLE to it. Then call the CModalDialog constructor to construct the dialog object. In this case, pass NULL for the first parameter to the constructor. Next, call CreateIndirect to store your handle to the in-memory dialog template. The Windows dialog is created and displayed later, when the DoModal member function runs. 4��%�&) "��2�������Returns�[�&~&/ .���2���������TRUE if the dialog object was created and initialized successfully; otherwise FALSE. 5�&�&) "��2�������See Also�[~&V&H `���2��������I`t����8�|�������WM_INITDIALOG, DLGTEMPLATE, CWnd::DestroyWindow, CModalDialog::CModalDialog �g�&�&1���������M�&0&�	&CModalDialog::DoModalEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CModalDialog')")BV&0&) "�2�2�������CModalDialog::DoModal>�&n&, (�$�r�=���~����int DoModal();)0&�&& ��2������4n&�&) "��2�������Remarks��&�&d ��[�2������}��U����׸$q����}��U����׸$q���������Invokes the dialog box and returns the dialog box result when done. This member function handles all interaction with the user while the dialog box is active. This is what makes the dialog box modal; that is, the user cannot interact with other windows until the dialog box is closed. If the user clicks one of the pushbuttons in the dialog box, such as OK or Cancel, a message-handler member function, such as OnOK or OnCancel, is called to attempt to close the dialog box. The default OnOK and OnCancel member functions will end the dialog with results IDOK and IDCANCEL, respectively. You can override these message-handler functions to alter this behavior. 4�&&) "��2�������Returns6��&F	&? L���2��������㈴!�����An int value that specifies the value of the nResult parameter that was passed to the CDialog::EndDialog member function, which is used to terminate the dialog box.The return value is -1 if the function could not create the dialog box. 5&{	&) "��2�������See Also;F	&�	&* $�"�2��������::DialogBox �h{	&O
&1��������NO
&�
&|&CModalDialog::OnCancelEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CModalDialog')")C�	&�
&) "�4�2�������CModalDialog::OnCancelHO
&�
&, (�8�r�=���~����virtual void OnCancel();)�
&&& ��2������4�
&7&) "��2�������Remarks��&&@ N�O�2�����Tˀ���������Override this member function to perform Cancel button action. The default simply terminates the dialog box and causes DoModal to return IDCANCEL. See Also^(7&|&6 <�P�2����}��U��������CModalDialog::OnOK, WM_COMMAND �d&
&1��������O
&P
&2&CModalDialog::OnOKEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CModalDialog')")?|&P
&) "�,�2�������CModalDialog::OnOKD
&�
&, (�0�r�=���~����virtual void OnOK();)P
&�
&& ��2������4�
&�
&) "��2�������Remarks���
&�&@ N�?�2�����Tˀ���������Override this member function to perform OK button action. The default simply terminates the dialog box and causes DoModal to return IDOK. See Alsob,�
&2&6 <�X�2����׸$q��������CModalDialog::OnCancel, WM_COMMAND �]�&�&1��������P�&@&�D&class CPaintDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_003')");2&@&) "�$�2�������class CPaintDC�&@&2&8�&D@&) "��2�������Description�C@&�A&q ����2������㪌����-{�����m�vJ���������C�����������The CPaintDC class is a device-context class derived from CDC. It performs a CWnd::BeginPaint at construction time and CWnd::EndPaint at destruction time. A CPaintDC object can only be used when responding to a WM_PAINT message, usually in your OnPaint message-handler member function. See Also;D@&3B&0 0��2���㪌������CDC Q!�A&�B&0 0�B�2����������Public MembersData MembersE3B&C&: D���R�рK��㵏����������m_psContains the PAINTSTRUCT used to paint the client area. E�B&HC&) "�8�2�������Construction/Destruction�rC&D&[ ����R�7��~�7�`O�V�������+�����.�#���������CPaintDCConstructs a CPaintDC connected to the specified CWnd. ~CPaintDCDestroys a CPaintDC. >HC&SD&) "�*�2�������Protected Members�ED&�D&A R���R����_������������m_hWndThe HWND to which this CPaintDC object is attached. �`SD&jE&1���������QjE&�E&cI&CPaintDC::CPaintDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPaintDC')")>�D&�E&(  �,�������CPaintDC::CPaintDCu<jE&F&9 B�x�r�=���~���������CPaintDC( CWnd* pWnd );throw( CResourceException );)�E&FF&& ��2������KF&�F&2 4�2�R�=��~Q�=�����ParameterDescription�MFF&G&; F���R�=��~�=���������pWndPoints to the CWnd object to which the CPaintDC object belongs. 4�F&MG&) "��2�������Remarks�G&cI&L f���2��������㵏������������Constructs a CPaintDC object, prepares the application window for painting, and stores the PAINTSTRUCT structure in the m_ps member variable. An exception (of type CResourceException) is thrown if the Windows GetDC call fails. A device context may not be available if Windows has already allocated all of its available device contexts. Your application competes for the five common display contexts available at any given time under Windows. �aMG&�I&1���������R�I&5J&�K&CPaintDC::~CPaintDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPaintDC')")@cI&5J&) "�.�2�������CPaintDC::~CPaintDCC�I&xJ&, (�.�r�=���~����virtual ~CPaintDC())5J&�J&& ��2������4xJ&�J&) "��2�������Remarks���J&�K&- (�'�2��������Destroys a CPaintDC object and marks the end of painting the application window. In the process, the destructor destroys the paint structure. �^�J&$L&1��������S$L&aL&?M&CPaintDC::m_hWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPaintDC')")=�K&aL&) "�(�2�������CPaintDC::m_hWnd4$L&�L&) "��2�������Remarks�laL&?M&> L���2��������������The HWND to which this CPaintDC object is attached. m_hWnd is a protected variable of type HWND. �\�L&�M&1k��������T�M&N&ǀ&CPaintDC::m_psEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPaintDC')");?M&N&) "�$�2�������CPaintDC::m_ps4�M&;N&) "��2�������RemarkskN&�O&O l�9�2����������-{�����������m_ps is a public member variable of type PAINTSTRUCT. It is the PAINTSTRUCT that is passed to and filled out by CWnd::BeginPaint. The PAINTSTRUCT contains information that the application uses to paint the client area of the window associated with a CPaintDC object. �;N&ǀ&J b���r��������������㪌�����Note:You can a�O&ǀ&?M&ccess the device-context handle through the PAINTSTRUCT. However, you can access the handle more directly through the m_hDC member variable, which CPaintDC inherits from CDC. �]�O&U�&1�
��������UU�&��&9�&class CPaletteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_003')"):ǀ&��&(  �$�������class CPalette8U�&ǁ&) "��2�������Description@��&�&- (�'�2��������The CPalette class encapsulates a Windows color palette. A palette provides an interface between an application and a color output device (such as a display device). The interface allows the application to take full advantage of the color capabilities of the output device without severely interfering with the colors displayed by other applications. Windows uses the application's logical palette (a list of needed colors) in conjunction with the system palette (which defines available colors) to determine the colors used. 7ǁ&>�&3 4�	�2����������A CPalette object provides member functions for manipulating the palette referred to by the object. Construct a CPalette object and use its member functions to create the actual palette (a GDI object) and to manipulate its entries and other properties. ;�&y�&) "�$�2�������Public MembersE>�&��&) "�8�2�������Construction/Destruction��y�&��&B R�q�R����������������CPaletteConstructs a CPalette object with no attached Windows palette. You must initialize the CPalette object with one of the other member functions before it can be used. ;��&�&) "�$�2�������Initialization����&��&B R��R����~���op*����������CreatePaletteInitializes a CPalette object by creating a Windows color palette and attaching the palette to the CPalette object. 7�&��&) "��2�������Operations����&�&x ���R�g��}�g�<���������������e�>�������nT������»C@��������FromHandleReturns a pointer to a CPalette object when given a handle to a Windows palette object. If a CPalette object is not already attached to the Windows palette, a temporary CPalette object is created and attached. GetPaletteEntriesRetrieves a range of palette entries in a logical palette. SetPaletteEntriesSets RGB color values and flags in a range of entries in a logical palette. AnimatePaletteReplaces entries in the logical palette identified by the CPalette object. The application does not have to update its client area because Windows maps the new entries into the system palette immediately. H���&9�&J b���R�g��}�g���]�����ノ����������GetNearestPaletteIndexReturns the index of the entry in the logical palette that most closely matches a color value. ResizePaletteChanges the size of the logical palette specified by the CPalette object to the specified number of entries. �f�&Ќ&1���������VЌ&�&��&CPalette::AnimatePaletteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPalette')")D9�&�&(  �8�������CPalette::AnimatePalette�dЌ&��&> L���r�=���~����������void AnimatePalette( UINT nStartIndex, UINT nNumEntries, LPPALETTEENTRY lpPaletteColors );)�&ߍ&& ��2������K��&*�&2 4�2�R�{��~Q�{�����ParameterDescription�<ߍ&��&R r�y�R�{��~�{�������������������nStartIndexSpecifies the first entry in the palette to be animated. nNumEntriesSpecifies the number of entries in the palette to be animated. lpPaletteColorsPoints to the first member of an array of PALETTEENTRY structures to replace the palette entries identified by nStartIndex and nNumEntries. 4*�&�&) "��2�������Remarks��&�&9�&���&�&R r�}�2���������������������Replaces entries in the logical palette attached to the CPalette object. When an application calls AnimatePalette, it does not have to update its client area because Windows maps the new entries into the system palette immediately. The AnimatePalette function will only change entries with the PC_RESERVED flag set in the corresponding palPaletteEntry member of the LOGPALETTE structure that is attached to the CPalette object. 5�&Q�&) "��2�������See Alsoi3�&��&6 <�f�2����op*��������CPalette::CreatePalette, ::AnimatePalette �eQ�&P�&1+��������WP�&��&��&CPalette::CreatePaletteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPalette')")D��&��&) "�6�2�������CPalette::CreatePaletteh6P�&��&2 4�l�r�=���~������BOOL CreatePalette( LPLOGPALETTE lpLogPalette );)��&%�&& ��2������K��&p�&2 4�2�R�M��~Q�M�����ParameterDescription�w%�&�&5 :���R�M��~�M�������lpLogPalettePoints to a LOGPALETTE structure that contains information about the colors in the logical palette. 4p�&P�&) "��2�������Remarksp#�&��&M h�G�2��������������y���������Initializes a CPalette object by creating a Windows logical color palette and attaching it to the CPalette object. When it has finished using a palette created by CreatePalette, an application should remove the palette by using the CGdiObject::DeleteObject function. ReturnsZ+P�&�&/ .�V�2���������TRUE if successful; otherwise FALSE. 5��&O�&) "��2�������See Also?�&��&* $�*�2��������::CreatePalette �bO�&!�&1���������X!�&b�&��&CPalette::FromHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPalette')")A��&b�&) "�0�2�������CPalette::FromHandlei7!�&��&2 4�n�r�=���~������static CPalette* FromHandle( HPALETTE hPalette );)b�&��&& ��2������K��&?�&2 4�2�R�=��~Q�=�����ParameterDescriptione6��&��&/ .�l�R�=��~�=�����hPaletteA handle to a Windows GDI color palette. 4?�&��&) "��2�������Remarks:���&�&? L���2��������������Returns a pointer to a CPalette object when given a handle to a Windows palette object. If a CPalette object is not already attached to the Windows palette, a temporary CPalette object is created and attached. This temporary CPalette object is valid only until the next time the application has idle time in its event loop, at which time all temporary graphic objects are deleted. Another way of saying this is that the temporary object is only valid during the processing of one window message. 4��&F�&) "��2�������ReturnswE�&��&2 4���2����������A pointer to a CPalette object if successful; otherwise NULL. �nF�&\�&1z��������Y\�&��&�'CPalette::GetNearestPaletteIndexEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPalette')")M$��&��&) "�H�2�������CPalette::GetNearestPaletteIndexk9\�&�&2 4�r�r�=���~������UINT GetNearestPaletteIndex( DWORD crColor ) const;)��&=�&& ��2������K�&��&2 4�2�R�=��~Q�=�����ParameterDescription^/=�&��&/ .�^�R�=��~�=�����crColorSpecifies the color to be matched. 4��&�&) "��2�������Remarks�x��&��&- *���2���������Returns the index of the entry in the logical palette that most closely matches the specified color value. Returns�z�&k'& ���2������The index of an entry in a��&k'��& logical palette. The entry contains the color that most nearly matches the specified color. 5��&�') "��2�������See AlsoHk'�'* $�<�2��������::GetNearestPaletteIndex �i�'�'1���������Z�'�'>'CPalette::GetPaletteEntriesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPalette')")H�'�') "�>�2�������CPalette::GetPaletteEntries�m�'u'> L���r�=���~����������UINT GetPaletteEntries( UINT nStartIndex, UINT nNumEntries, LPPALETTEENTRY lpPaletteColors ) const;)�'�'& ��2������Ku'�'2 4�2�R�{��~Q�{�����ParameterDescription�h�'�'L f���R�{��~�{�����������������nStartIndexSpecifies the first entry in the logical palette to be retrieved. nNumEntriesSpecifies the number of entries in the logical palette to be retrieved. lpPaletteColorsPoints to an array of PALETTEENTRY data structures to receive the palette entries. The array must contain at least as many data structures as specified by nNumEntries. 4�'�') "��2�������RemarksuH�'F'- *���2���������Retrieves a range of palette entries in a logical palette. Returns�Z�'�'& ���2������The number of entries retrieved from the logical palette, or 0 if the function failed. 5F'�') "��2�������See AlsoC�'>'* $�2�2��������::GetPaletteEntries �`�'�'1���������[�''�'CPalette::CPaletteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPalette')")?>'') "�,�2�������CPalette::CPalette<�'J', (� �r�=���~����CPalette() ;)'s'& ��2������4J'�') "��2�������Remarks��s'h'@ N��2�������op*��������Constructs a CPalette object. The object has no attached palette until you call CreatePalette to attach one. See AlsoO�'�'0 0�>�2����op*������CPalette::CreatePalette �eh'M	'1���������\M	'�	'Y'CPalette::ResizePaletteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPalette')")D�'�	') "�6�2�������CPalette::ResizePalette_-M	'�	'2 4�Z�r�=���~������BOOL ResizePalette( UINT nNumEntries );)�	'
'& ��2������K�	'd
'2 4�2�R�M��~Q�M�����ParameterDescription�Z
'�
'/ .���R�M��~�M�����nNumEntriesSpecifies the number of entries in the palette after it has been resized. 4d
'!') "��2�������Remarks��
'=
'? L���2��������������Changes the size of the logical palette attached to the CPalette object to the number of entries specified by nNumEntries. If an application calls ResizePalette to reduce the size of the palette, the entries remaining in the resized palette are unchanged. If the application calls ResizePalette to enlarge the palette, the additional palette entries are set to black (the red, green, and blue values are all 0) and the flags for all additional entries are set to 0. 4!'q
') "��2�������ReturnstE=
'�
'/ .���2���������TRUE if the palette was successfully resized; otherwise FALSE. 5q
'') "��2�������See Also?�
'Y'* $�*�2��������::ResizePalette �i'�'1���������]�';'�D'CPalette::SetPaletteEntriesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPalette')")HY';') "�>�2�������CPalette::SetPaletteEntries�g�'�'> L���r�=���~����������UINT SetPaletteEntries( UINT nStartIndex, UINT nNumEntries, LPPALETTEENTRY lpPaletteColors ););'@'& ��2���'@'Y'����K�'`@'2 4�2�R�{��~Q�{�����ParameterDescription�\@'B'L f���R�{��~�{�����������������nStartIndexSpecifies the first entry in the logical palette to be set. nNumEntriesSpecifies the number of entries in the logical palette to be set. lpPaletteColorsPoints to an array of PALETTEENTRY data structures to receive the palette entries. The array must contain at least as many data structures as specified by nNumEntries. 4`@'<B') "��2�������RemarksZB'�C'A P�3�2����������4��������Sets RGB color values and flags in a range of entries in a logical palette. If the logical palette is selected into a device context when the application calls SetPaletteEntries, the changes will not take effect until the application calls CDC::RealizePalette. ReturnsxR<B'D'& ���2������The number of entries set in the logical palette, or 0 if the function failed. 5�C'CD') "��2�������See Alsoh2D'�D'6 <�d�2������4��������CDC::RealizePalette, ::SetPaletteEntries �YCD'5E'1���������^5E'lE'	I'class CPenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_003')")7�D'lE') "��2�������class CPen85E'�E') "��2�������Description}QlE'!F', (���2��������The CPen class encapsulates a Windows graphical design interface (GDI) pen. ;�E'\F') "�$�2�������Public MembersE!F'�F') "�8�2�������Construction/Destructiona'\F'G': D�N�R�ӀI�����ˀ�������CPenConstructs a CPen object. ;�F'=G') "�$�2�������Initialization�G'>H'J b�o�R��-~�����������U߀�������CreatePenInitializes a pen with the specified style, width, and color. CreatePenIndirectInitializes a pen with the style, width, and color given in a LOGPEN structure. 7=G'uH') "��2�������Operations�S>H'	I'A R���R�e��~�e� ������������FromHandleReturns a pointer to a CPen object when given a Windows HPEN. �YuH'�I'1���������_�I'�I't�'CPen::CreatePenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPen')");	I'�I'(  �&�������CPen::CreatePen�E�I'QJ'> L���r�=���~����������BOOL CreatePen( int nPenStyle, int nWidth, DWORD crColor );)�I'zJ'& ��2������KQJ'�J'2 4�2�R�=��~Q�=�����ParameterDescription�ZzJ'qL'R r���R�=��~�=��������ˀ������������nPenStyleSpecifies the style for the pen. For a list of possible values, see the nPenStyle parameter to the CPen constructor. nWidthSpecifies the width of the pen (in logical units). If this value is zero, the width in device units is always one pixel, regardless of the mapping mode. crColorContains an RGB color for the pen. 4�J'�L') "��2�������RemarksB�qL'�'f ����2����������y����������������������Initializes a pen with the specified style, width, and color. The pen can be subsequently selected as the current pen for any device context. When it has finished using a pen created by CreatePen, an application should remove the pen by using the DeleteObject function. Pens that have a width greater than 1 pixel should always have either the PS_NULL, PS_SOLID, or PS_INSIDEFRAME style. If a pen has the PS_INSIDEFRAME style and a color that does not match a color in the logical color table, the pen is drawn with a dithered color. The PS_SOLID pen style cannot be used to create a pen with a dithered color. The style PS_INSIDEFRAME is identical to PS_SOLID if the pen width is less than or equal to 1. �L'�'	I'4�L'@�') "��2�������Returnsj;�'��'/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5@�'߀') "��2�������See Also�M��'t�'H `���2�����U߀�����ˀ�����y�������CPen::CreatePenIndirect, CPen::CPen, CGdiObject::DeleteObject �a߀'�'1��������`�'J�'$�'CPen::CreatePenIndirectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPen')")Dt�'J�') "�6�2�������CPen::CreatePenIndirectd2�'��'2 4�d�r�=���~������BOOL CreatePenIndirect( LPLOGPEN lpLogPen );)J�'ׂ'& ��2������K��'"�'2 4�2�R�=��~Q�=�����ParameterDescription�_ׂ'��'5 :���R�=��~�=�������lpLogPenPoints to the Windows LOGPEN structure that contains information about the pen. 4"�'�') "��2�������Remarks3���'�'S t���2����������������������Initializes a pen that has the style, width, and color given in the structure pointed to by lpLogPen. Pens that have a width greater than 1 pixel should always have either the PS_NULL, PS_SOLID, or PS_INSIDEFRAME style. If a pen has the PS_INSIDEFRAME style and a color that does not match a color in the logical color table, the pen is drawn with a dithered color. The PS_INSIDEFRAME style is identical to PS_SOLID if the pen width is less than or equal to 1. ���'��'@ N�7�2���������y���������When it has finished using a pen created by CreatePenIndirect, an application should remove the pen by using the DeleteObject function. Returnsj;�'b�'/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5��'��') "��2�������See Also�Eb�'$�'H `���2�����������ˀ�����y�������CPen::CreatePen, CPen::CPen, CGdiObject::DeleteObject �T��'��'1
��������a��'��'��'CPen::CPenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPen')")7$�'��') "��2�������CPen::CPen�d��'��'L h���r�=���~����������������CPen();CPen( int nPenStyle, int nWidth, DWORD crColor );throw( CResourceException );)��'��'& ��2������K��'�'2 4�2�R�=��~Q�=�����ParameterDescription�Z��'��'/ .���R�=��~�=�����nPenStyleSpecifies the pen style. This parameter can be one of the following values: C�'Њ'2 4�"�R�M��}Q�M�����ValueMeaning!y��'�'� ���R�M��}�M�������������������������������
���㭿�C���ㄻ�n����
*<����㮎俀����s������PS_SOLIDCreates a solid pen. PS_DASHCreates a dashed pen. Valid only when the pen width is 1. PS_DOTCreates a dotted pen. Valid only when the pen width is 1. PS_DASHDOTCreates a pen with alternating dashes and dots. Valid only when the pen width is 1. PS_DASHDOTDOTCreates a pen with alternating dashes and double-dots. Valid only when the pen width is 1. PS_NULLCreates a null pen. PS_INSIDEFRAMECreates a pen that draws a line inside the frame of closed shapes produced by the Windows graphics device interface (GDI) output functions that specify a bounding rectangle (for example, the Ellipse, Rectangle, RoundRect, Pie, and Chord functions). When this style is used with Windows GDI output functions that do not specify a bounding rectangle (for example, the LineTo function), the drawing area of the pen is not limited by a frame. 
�Њ'�'8 >���R�=��~�=���������nWidthSpecifies the width, in logical units, of the pen. If this value is zero, the width in device units is always one pixel, regardless of the mapping mode. crColorContains an RGB color for the pen. �'�'$�'4�'@�') "��2�������Remarks���'5�'X ~�;�2�������������U߀���u9�T��������If you use the constructor with no arguments, you must initialize the resulting CPen object with CreatePen, CreatePenIndirect, or CreateStockObject. If you use the constructor that takes arguments, then no further initialization is necessary. The constructor with arguments can throw an exception if errors are encountered, while the constructor with no arguments will always succeed. See Also�W@�'��'H `���2����������U߀���u9�T������CPen::CreatePen, CPen::CreatePenIndirect, CGdiObject::CreateStockObject �Z5�'_�'1��������b_�'��'��'CPen::FromHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPen')")=��'��') "�(�2�������CPen::FromHandle]+_�'��'2 4�V�r�=���~������static CPen* FromHandle( HPEN hPen );)��'"�'& ��2������K��'m�'2 4�2�R�=��~Q�=�����ParameterDescription`+"�'��'5 :�V�R�=��~�=�������hPenHPEN handle to Windows GDI pen. 4m�'�') "��2�������Remarks���'�'F Z���2�����������������Returns a pointer to a CPen object given a handle to a Windows GDI pen object. If a CPen object is not attached to the handle, a temporary CPen object is created and attached. This temporary CPen object is valid only until the next time the application has idle time in its event loop, at which time all temporary graphic objects are deleted. In other words, the temporary object is only valid during the processing of one window message. ReturnssA�'��'2 4���2����������A pointer to a CPen object if successful; otherwise NULL. �[�'�'1Z��������c�'K�'t�'class CPointEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_004')")9��'K�') "� �2�������class CPoint8�'��') "��2�������Description5�K�'��'S t���2����������������������The CPoint class is similar to a Windows POINT structure and also includes member functions to manipulate CPoint and POINT structures. A CPoint object can be used wherever a POINT structure is used. See AlsoT��'�'< H�0�2����	�����\
������CRect, CSize ]-��'i�'0 0�Z�2����������Public MembersConstruction/Destruction^$�'��': D�H�R��1��㖊U��������CPointConstructs a CPoint. 7i�'��') "��2�������Operations�"��'��'� ΀E�R�M��~�M��Gg����������L��������ƀ�����{����������3����������OffsetAdds separate values to the x and y members of the CPoint. operator ==Checks for equality between two points. operator !=Checks for inequality between two points. operator +=Offsets a CPoint by a size. operator -=Subtracts a size from the CPoint. N%��'��') "�J�2�������Operators Returning CPoint Values�t��'��'O n���R�/��~�/�qa���������L��"��������operator +Returns a CPoint offset by a size. operator -Returns a CPoint offset by a negative size. M$��'��') "�H�2�������Operators Returning CSize ValuesvA��'t�'5 :���R�)��~�)�L��"������operator -Returns the size difference between two points. �Z��'��'1���������d��'9�'�(CPoint::CPointEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPoint')"):t�'9�'(  �$�������CPoint::CPoint�l��'(Y ����r�=���~���������������������CPoint();CPoint( int initX, int initY );CPoint( POINT initPt );CPoint( SIZE initSize );9�'(t�')9�'5(& ��2������K(�(2 4�2�R�=��~Q�=�����ParameterDescription{	5(�(r ���R�=��~�=�������������������������������initXSets the x member for the CPoint. initYSets the y member for the CPoint. initPtWindows POINT structure used to initialize CPoint. initSizeSets the x and y member equal to the corresponding values in cx and cy values in initSize. 4�(/() "��2�������Remarks�a�(�(, (���2��������Constructs a CPoint object. If no arguments are given, x and y members are not initialized. �Z/(G(1���������eG(�(I(CPoint::OffsetEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPoint')");�(�() "�$�2�������CPoint::Offset�rG(F(R t���r�=���~������������������void Offset( int xOffset, int yOffset );void Offset( POINT point );void Offset( SIZE initSize );)�(o(& ��2������KF(�(2 4�2�R�=��~
�=�����ParameterDescription`o((` ���R�=��~�=�������������������������xOffsetSpecifies the amount to offset the x member of the CPoint. yOffsetSpecifies the amount to offset the y member of the CPoint. pointSpecifies the amount to offset the CPoint. initSizeSpecifies the amount to offset the CPoint. 4�(N() "��2�������Remarks}J(�(3 6���2�����������Adds separate values to the x and y members of the CPoint. Returns~:N(I(D X�t�2�����������l��ˀ����A CPoint offset by a POINT, CPoint, or Size. �^�(�(1b��������f�((H
(CPoint::operator==EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPoint')")?I(() "�,�2�������CPoint::operator==^,�(u(2 4�X�r�=���~������BOOL operator ==( POINT point ) const;)(�(& ��2������Ku(�(2 4�2�R�=��~Q�=�����ParameterDescriptione*�(N	(; F�T�R�=��~�=���������pointContains a POINT or CPoint. 4�(�	() "��2�������Remarksb5N	(�	(- *�j�2���������Checks for equality between two points. Returnsd5�	(H
(/ .�j�2���������TRUE if the points are equal; otherwise FALSE. �^�	(�
(1h��������g�
((M
(CPoint::operator!=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPoint')")?H
(() "�,�2�������CPoint::operator!=^,�
(t(2 4�X�r�=���~������BOOL operator !=( POINT point ) const;)(�(& ��2������Kt(�(2 4�2�R�=��~Q�=�����ParameterDescriptione*�(M(; F�T�R�=��~�=���������pointContains a POINT or CPoint. 4�(�() "��2�������Remarksd7M(�(- *�n�2���������Checks for inequality between two points. Returnsh9�(M
(/ .�r�2���������TRUE if the points are not equal; otherwise FALSE. �^�(�
(1���������h�
((@(CPoint::operator+=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPoint')")?M
(() "�,�2�������CPoint::operator+=V$�
(q(2 4�H�r�=���~������void operator +=( SIZE size );)(�(& ��2������Kq(�(2 4�2�R�=��~Q�=�����ParameterDescriptionl+�(Q(A R�V�R�=��~�=����l��ˀ������sizeContains a SIZE or a CSize. 4�(�() "��2�������RemarksM!Q(@(, (�B�2��������Offsets a CPoint by a size. �(@(M
(�^�(�@(1���������i�@(�@(�B(CPoint::operator-=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPoint')")?@(�@() "�,�2�������CPoint::operator-=V$�@(0A(2 4�H�r�=���~������void operator -=( SIZE size );)�@(YA(& ��2������K0A(�A(2 4�2�R�=��~Q�=�����ParameterDescriptionl+YA(B(A R�V�R�=��~�=����l��ˀ������sizeContains a SIZE or a CSize. 4�A(DB() "��2�������RemarksS'B(�B(, (�N�2��������Subtracts a size from the CPoint. �]DB(%C(1���������j%C(cC(&E(CPoint::operator+EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPoint')")>�B(cC() "�*�2�������CPoint::operator+]+%C(�C(2 4�V�r�=���~������CPoint operator +( SIZE size ) const;)cC(�C(& ��2������K�C(4D(2 4�2�R�=��~Q�=�����ParameterDescriptionl+�C(�D(A R�V�R�=��~�=����l��ˀ������sizeContains a SIZE or a CSize. 34D(�D((  ��������ReturnsS(�D(&E(+ &�P��������A CPoint that is offset by a size. �]�D(�E(1���������k�E(�E(xH(CPoint::operator-EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CPoint')")=&E(�E((  �*�������CPoint::operator-�V�E(�F(? N���r�=���~�����������CSize operator -( POINT point ) const;CPoint operator -( SIZE size ) const;)�E(�F(& ��2������K�F(�F(2 4�2�R�=��~Q�=�����ParameterDescription�R�F(�G(U z���R�=��~�=������������l��ˀ������pointContains a POINT or CPoint. sizeContains a SIZE or CSize. 3�F(�G((  ��������Returns�s�G(xH(1 2������������A CSize that is the difference between two points, or returns a CPoint that is negatively offset by a size. �Z�G(I(1���������lI(:I(ˋ(class CRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_004')")7xH(:I((  ��������class CRect8I(rI() "��2�������Description+�:I(�K(e ����2������������������������������The CRect class is similar to a Windows RECT structure, and also includes member functions to manipulate a CRect and Windows RECT structures. A CRect object can be passed as a function parameter wherever a LPRECT or RECT structure can be passed. A CRect contains member variables that define the top-left and bottom-right points of a rectangle. The width or height of the rectangle defined by CRect must not exceed 32,767 units. brI(�M(L f�-�2�������������������When specifying a CRect, you must be careful to construct it so that the top-left point is above and to the left of the bottom-right point in the Windows coordinate system; otherwise, the CRect will not be recognized by some functions. For example, a top left of (10,10) and bottom right of (20,20) defines a valid rectangle; a top left of (20,20) and bottom right of (10,10), an invalid rectangle. When using overloaded CRect operators, the first operator must be a CRect; the second can be either a RECT or a CRect. 5�K(4N() "��2�������See AlsoU�M(�N(< H�2�2�����'������\
������CPoint, CSize ]-4N(�N(0 0�Z�2����������Public MembersConstruction/Destructionc)�N(IO(: D�R�R�߀=���`J�?��������CRectConstructs a CRect object. 7�N(�O() "��2�������Operations"|IO(��(� ���R����~��㟰�C��������#�Հ�������l��ˀ�������m����������������O(��(xH(������H]�Z����������WidthCalculates the width of CRect. HeightCalculates the height of CRect. SizeCalculates the size of CRect. TopLeftReturns a reference to the top-left point of CRect. BottomRightReturns a reference to the bottom-right point of CRect. IsRectEmptyDetermines whether CRect is empty. CRect is empty if the width and/or height are 0. }�O(Ƀ(� 
���R����~������������������e�j��������k�:!��������@[h�������������������IsRectNullDetermines if the top, bottom, left, and right member variables are all equal to 0. PtInRectDetermines whether the specified point lies within CRect. SetRectSets the dimensions of CRect. SetRectEmptySets CRect to an empty rectangle (all coordinates equal to 0). CopyRectCopies the dimensions of a source rectangle to CRect. �\��(��(� 怹�R����~���#R(��������t$*���������n�=���������Ԕ��������pw
��������EqualRectDetermines whether CRect is equal to the given rectangle. InflateRectIncreases or decreases the width and height of CRect. OffsetRectMoves CRect by the specified offsets. IntersectRectSets CRect equal to the intersection of two rectangles. UnionRectSets CRect equal to the union of two rectangles. 6
Ƀ(�() "��2�������Operators-���(�(� &��R�ׁE~���e�����������������*��������诀�������@�.���������O��������?4���������operator LPRECTConverts a CRect to an LPRECT. operator =Copies the dimensions of a rectangle to CRect. operator ==Determines whether CRect is equal to a rectangle. operator !=Determines whether CRect is not equal to a rectangle. operator +=Adds the specified offsets to CRect. operator -=Subtracts the specified offsets from CRect. e��(y�(� "�w�R�ׁE~��� ��������������t�����������dYO�����������ꭳs����������1~xc����������operator &=Sets CRect equal to the intersection of CRect and a rectangle. operator |=Sets CRect equal to the union of CRect and a rectangle. operator +Adds the given offsets to CRect and returns the resulting CRect. operator -Subtracts the given offsets from CRect and returns the resulting CRect. operator &Creates the intersection of CRect and a rectangle, and returns the resulting CRect. �b�(�(A R���R�ׁE~���5by����������operator |Creates the union of CRect and a rectangle, and returns the resulting CRect. Ay�(]�() "�0�2�������Windows 3.1 Funtionsn9�(ˋ(5 :�r�R�q��~�q�ABx������SubtractRectSubtracts one rectangle from another. �]]�(Y�(1���������mY�(��(	�(CRect::BottomRightEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")>ˋ(��((  �,�������CRect::BottomRightFY�(݌(, (�4�r�=���~����CPoint& BottomRight();)��(�(& ��2������4݌(:�() "��2�������RemarkszG�(��(3 6���2�����������Returns a reference to the bottom-right point of CRect. ReturnsU&:�(	�(/ .�L�2���������POINT&, a reference to a POINT. �Z��(��(1���������n��(Ў(>�(CRect::CopyRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")<	�(Ў() "�&�2�������CRect::CopyRectZ(��(*�(2 4�P�r�=���~������void CopyRect( LPRECT lpSrcRect );)Ў(S�(& ��2������K*�(��(2 4�2�R�=��~Q�=�����ParameterDescription�QS�(6�(; F���R�=��~�=���������lpSrcRectPoints to the RECT or CR��(6�(	�(ect whose dimensions are to be copied. 4��(j�() "��2�������Remarksx?6�(��(9 B�~�2�������������Copies the lpSrcRect rectangle to the CRect. See Also\&j�(>�(6 <�L�2�������*������::CopyRect, CRect::operator= �W��(��(1���������o��(��(��(CRect::CRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")9>�(��() "� �2�������CRect::CRect���(�(y ��G�r�=���~��������������������������������CRect();CRect( int l, int t, int r, int b );CRect( const RECT& srcRect );CRect( LPRECT lpSrcRect );CRect( POINT point, SIZE size );)��(D�(& ��2������K�(��(2 4�2�R�=��~�=�����ParameterDescription`�D�(��(� �R�=��~�=���������������������������������������������lSpecifies the left position of the CRect. tSpecifies the top of the CRect. rSpecifies the right position of the CRect. bSpecifies the bottom of the CRect. srcRectRefers to the RECT structure with the dimensions for the CRect object. lpSrcRectPoints to the RECT structure with the dimensions for the CRect object. pointSpecifies the origin point for the rectangle to be constructed. Corresponds to the top-left corner. �|��(��(/ .���R�=��~�=�����sizeSpecifies the displacement from the top-left corner to the bottom-right corner of the rectangle to be constructed. 4��(��() "��2�������Remarks:���(�(_ ����2�������������������������������Constructs a CRect object. The CRect( const RECT& ) and CRect( LPRECT ) member functions perform a CopyRect. The other constructors initialize the member variables of the object directly. See Also�B��(��(H `���2����k�:!������������*������CRect::SetRect, CRect::CopyRect, CRect::operator = �[�(�(1���������p�([�(�(CRect::EqualRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")=��([�() "�(�2�������CRect::EqualRect^,�(��(2 4�X�r�=���~������BOOL EqualRect( LPRECT lpRect ) const;)[�(��(& ��2������K��(-�(2 4�2�R�=��~Q�=�����ParameterDescription�y��(��(; F���R�=��~�=���������lpRectPoints to a RECT or CRect that contains the upper-left and lower-right corner coordinates of a rectangle. 3-�(�((  ��������Returns�e��(��(. ,�����������TRUE if the two rectangles have the same top, left, bottom, and right values; otherwise FALSE. 4�(��((  ��������See Also:��(�() "�"��������::EqualRect �X��(��(1���������q��(��(x�(CRect::HeightEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")9�(��((  �"�������CRect::HeightC��(�(, (�.�r�=���~����int Height() const;)��(C�(& ��2������4�(w�() "��2�������Remarks��C�(2�(4 6��2�����������Calculates the height of CRect by subtracting the top value from the bottom value. The resulting value may be negative. ReturnsFw�(x�(, (�4�2��������The height of CRect. �]2�(�(1���������r�(E�(�)CRect::InflateRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")?x�(E�() "�,�2�������CRect::InflateRect�L�(��(E Z���r�=���~�������������void InflateRect( int x, int y );void InflateRect( SIZE size );)E�()& ��2��������()x�(K��(W)2 4�2�R�=��~�=�����ParameterDescription�O)
)d ����R�=��~�=����������������l��ˀ��������xSpecifies the amount to increase or decrease CRect's width. It must be negative to decrease the width. ySpecifies the amount to increase or decrease CRect's height. It must be negative to decrease the height. sizeContains a SIZE or CSize that specifies x and y amounts to add to the CRect's height and width. 4W)>)) "��2�������Remarks7�
)u)J b���2�������������������InflateRect's parameters are signed values; positive values inflate the CRect, and negative values deflate it. When inflated, CRect's width is increased by two times x, and its height is increased by two times y. See Also=>)�)* $�&�2��������::InflateRect �_u)B)1e��������sB)�)�)CRect::IntersectRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")A�)�)) "�0�2�������CRect::IntersectRectt<B)�)8 @�x�r�=���~��������int IntersectRect( LPRECT lpRect1, LPRECT lpRect2 );)�) )& ��2������K�)k)2 4�2�R�=��~Q�=�����ParameterDescription�� )R)P n�/�R�=��~�=�����������������lpRect1Points to a RECT or CRect that contains a source rectangle. lpRect2Points to a RECT or CRect that contains a source rectangle. 4k)�)) "��2�������Remarks��R)`)4 6�M�2�����������Makes the CRect equal to the intersection of two existing rectangles. The intersection is the largest rectangle contained in both existing rectangles. Returns�m�)�)/ .���2���������TRUE if the intersection of the two rectangles is not empty. It is FALSE if the intersection is empty. 5`)1)) "��2�������See Also�D�)�)B T���2������ ������1~xc������::IntersectRect, CRect::operator &=, CRect::operator & �]1)E	)1���������tE	)�	)9)CRect::IsRectEmptyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")?�)�	)) "�,�2�������CRect::IsRectEmptyIE	)�	), (�:�r�=���~����BOOL IsRectEmpty() const;)�	)�	)& ��2������4�	)*
)) "��2�������Remarks��	)*)F Z�u�2������������������Determines if CRect is empty. A rectangle is empty if the width and/or height are 0 or negative. Differs from IsRectNull, which determines if the rectangle is NULL. Returnsz?*
)�); F�~�2�������������TRUE if CRect is empty. FALSE if CRect is not empty. 5*)�)) "��2�������See Also`*�)9)6 <�T�2�������������::IsRectEmpty, CRect::IsRectNull �\�)�)1���������u�)
)�)CRect::IsRectNullEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")>9)
)) "�*�2�������CRect::IsRectNullH�)L
), (�8�r�=���~����BOOL IsRectNull() const;)
)u
)& ��2������4L
)�
)) "��2�������Remarks��u
)�)@ N�a�2�������H]�Z��������Determines if the top, left, bottom, and right values of the CRect are all equal to 0. Differs from IsRectEmpty, which determines if the rectangle is empty. Returns�a�
)/)5 :���2�����������TRUE if CRect's top, left, bottom, and right values are all equal to 0; otherwise FALSE. 5�)d)) "��2�������See AlsoJ/)�)0 0�4�2����H]�Z������CRect::IsRectEmpty �\d)G@)1t��������vG@)�@)�D)CRect::OffsetRectEnableButton("u�)G@)�)p");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")>�)�@)) "�*�2�������CRect::OffsetRect�nG@)EA)R t���r�=���~������������������void OffsetRect( int x, int y );void OffsetRect( POINT point );void OffsetRect( SIZE size );)�@)nA)& ��2������KEA)�A)2 4�2�R�=��~�=�����ParameterDescription�KnA)jC)f ����R�=��~�=��������������������l��ˀ������xSpecifies the amount to move left or right. It must be negative to move left. ySpecifies the amount to move up or down. It must be negative to move up. pointContains a POINT or CPoint specifying both dimensions by which to move. sizeContains a SIZE or CSize specifying both dimensions by which to move. 4�A)�C)) "��2�������Remarks*�jC)�D)Q p���2��������������������Moves CRect by the specified offsets. Moves CRect x units along the x-axis and y units along the y-axis. The x and y parameters are signed values, so CRect can be moved left or right, and up or down. �Z�C)SE)1���������wSE)�E)�H)CRect::PtInRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")<�D)�E)) "�&�2�������CRect::PtInRect[)SE)�E)2 4�R�r�=���~������BOOL PtInRect( POINT point ) const;)�E)F)& ��2������K�E)^F)2 4�2�R�=��~Q�=�����ParameterDescriptione*F)�F); F�T�R�=��~�=���������pointContains a POINT or CPoint. 4^F)�F)) "��2�������Remarks��F)H)@ N���2���������������Determines whether the specified point lies within CRect. A point is within CRect if it lies on the left or top side, or is within all four sides. A point on the right or bottom side is outside CRect. Returnss>�F)�H)5 :�|�2�����������TRUE if the point lies within CRect; otherwise FALSE. 5H)�H)) "��2�������See Also:�H)�H)* $� �2��������::PtInRect �Y�H)I)1���������xI)�I)M)CRect::SetRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')");�H)�I)) "�$�2�������CRect::SetRect;I)9J)D X�v�r�=���~������������void SetRect( int x1, int y1, int x2, int y2 );)�I)bJ)& ��2������K9J)�J)2 4�2�R�=��~Q�=�����ParameterDescription7�bJ)�K)H ^���R�=��~�=�����������������x1Specifies the x-coordinate of the upper-left corner. y1Specifies the y-coordinate of the upper-left corner. x2Specifies the x-coordinate of the lower-right corner. y2Specifies the y-coordinate of the lower-right corner. 4�J)L)) "��2�������Remarks~K�K)�L)3 6���2�����������Sets the dimensions of CRect to the specified coordinates. See Also|:L)M)B T�t�2����`J�?����@[h��������CRect::CRect, CRect::SetRectEmpty, ::SetRect �^�L)�M)1���������y�M)�M):O)CRect::SetRectEmptyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")@M)�M)) "�.�2�������CRect::SetRectEmptyD�M)%N), (�0�r�=���~����void SetRectEmpty();)�M)NN)& ��2������4%N)�N)) "��2�������RemarkszGNN)�N)3 6���2�����������Creates a NULL rectangle (all coordinates equal to 0). See Also>�N):O)* $�(�2��������::SetRectEmpty �V�N)�O)1���������z�O)�)P�)CRect::SizeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")8:O)�)) "��2�������CRect::Size�O)�):O)C�O)O�), (�.�r�=���~����CSize Size() const;)�)x�)& ��2������3O�)��)(  ��������Returns�hx�)P�)= J����������������The CRect width and height encapsulated as the cx and cy member variables of a CSize object. �Y��)ځ)1+��������{ځ)�)�)CRect::TopLeftEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')"):P�)�)(  �$�������CRect::TopLeftBځ)V�), (�,�r�=���~����CPoint& TopLeft();)�)�)& ��2������3V�)��)(  ��������Returns\1�)�)+ &�b��������A reference to the top-left point of CRect. �[��)��)1���������|��)փ)K�)CRect::UnionRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")<�)փ)(  �(�������CRect::UnionRectp8��)F�)8 @�p�r�=���~��������int UnionRect( LPRECT lpRect1, LPRECT lpRect2 );)փ)o�)& ��2������KF�)��)2 4�2�R�=��~Q�=�����ParameterDescription��o�)��)P n�/�R�=��~�=�����������������lpRect1Points to a RECT or CRect that contains a source rectangle. lpRect2Points to a RECT or CRect that contains a source rectangle. 4��)Յ)) "��2�������RemarksM��)"�)5 8�1�2������������Makes the dimensions of CRect equal to the union of the two source rectangles. The union is the smallest rectangle that contains both source rectangles. Windows ignores the dimensions of an empty rectangle; that is, a rectangle that has no height or has no width. ReturnsrCՅ)��)/ .���2���������TRUE if the union is not empty; FALSE if the union is empty. 5"�)ɇ)) "��2�������See Also�@��)K�)B T���2��������t�����5by������::UnionRect, CRect::operator |=, CRect::operator | �Wɇ)ӈ)1���������}ӈ)�)��)CRect::WidthEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")9K�)�)) "� �2�������CRect::WidthBӈ)N�), (�,�r�=���~����int Width() const;)�)w�)& ��2������4N�)��)) "��2�������Remarks�|w�)Z�)3 6���2�����������Calculates the width of CRect by subtracting the left value from the right value. The width may be negative. ReturnsE��)��), (�2�2��������The width of CRect. �`Z�)0�)1^��������~0�)r�)��)CRect::operatorLPRECTEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")B��)r�)) "�2�2�������CRect::operatorLPRECTB0�)��), (�,�r�=���~����operator LPRECT();)r�)݋)& ��2������4��)�)) "��2�������Remarks�P݋)��)> L���2����������������Converts a CRect to a LPRECT, with no need for the AND (&) operator. �[�)+�)1a��������+�)h�)��)CRect::operator=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")=��)h�)) "�(�2�������CRect::operator=_-+�)Ǎ)2 4�Z�r�=���~������void operator =( const RECT& srcRect );)h�)��)& ��2������KǍ);�)2 4�2�R�=��~Q�=�����ParameterDescriptionY*��)��)/ .�T�R�=��~�=�����srcRectRefers to a source rectangle. 4;�)Ȏ)) "��2�������Remarksv=��)>�)9 B�z�2�������������Copies the dimensions of srcRect to CRect. See AlsoZ$Ȏ)��)6 <�H�2����k�:!��������CRect::SetRect, ::CopyRect �\>�)1�)1B���������1�)o�)��)CRect::operator==EnableButton("up");ChangeButtonBindin��)1�)��)g("up", "JI(`mfc10wh.hlp', `CRect')")>��)o�)) "�*�2�������CRect::operator==c11�)��)2 4�b�r�=���~������BOOL operator ==( const RECT& rect ) const;)o�)��)& ��2������K��)F�)2 4�2�R�=��~Q�=�����ParameterDescriptionV'��)��)/ .�N�R�=��~�=�����rectRefers to a source rectangle. 4F�)��)) "��2�������Remarks����)��): B��2�������������Determines if rect is equal to CRect by comparing the coordinates of their upper-left and lower-right corners. Returns�T��)�)2 4���2����������If the values of these coordinates are equal, returns TRUE; otherwise FALSE. 5��)E�)) "��2�������See Also;�)��)* $�"�2��������::EqualRect �\E�)
�)1(���������
�)K�)B�)CRect::operator!=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")>��)K�)) "�*�2�������CRect::operator!=c1
�)��)2 4�b�r�=���~������BOOL operator !=( const RECT& rect ) const;)K�)��)& ��2������K��)"�)2 4�2�R�=��~Q�=�����ParameterDescriptionV'��)x�)/ .�N�R�=��~�=�����rectRefers to a source rectangle. 4"�)��)) "��2�������Remarks��x�)j�): B�	�2�������������Determines if rect is not equal to CRect by comparing the coordinates of their upper-left and lower-right corners. ReturnsY*��)��)/ .�T�2���������TRUE if not equal; otherwise FALSE. 5j�)��)) "��2�������See AlsoJ��)B�)0 0�4�2����诀�����CRect::operator == �\��)��)1������������)
�)��)CRect::operator+=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")>B�)
�)) "�*�2�������CRect::operator+=X&��)e�)2 4�L�r�=���~������void operator +=( POINT point );)
�)��)& ��2������Ke�)��)2 4�2�R�=��~Q�=�����ParameterDescriptione*��)>�); F�T�R�=��~�=���������pointContains a POINT or CPoint. 4��)r�)) "��2�������Remarks�>�)z�)X ~�a�2�����������������������Moves CRect by the specified offsets. Moves CRect x units along the x-axis and y units along the y-axis. The x and y parameters are added to CRect. See AlsoIr�)��)0 0�2�2�����n�=������CRect::OffsetRect �\z�)P�)1����������P�)��)K�)CRect::operator-=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")>��)��)) "�*�2�������CRect::operator-=X&P�)��)2 4�L�r�=���~������void operator -=( POINT point );)��)�)& ��2������K��)Z�)2 4�2�R�=��~Q�=�����ParameterDescriptione*�)��); F�T�R�=��~�=���������pointContains a POINT or CPoint. 4Z�)��)) "��2�������Remarks���)�)X ~�o�2�����������������������Moves CRect by the specified offsets. Moves CRect x units along the x-axis and y units along the y-axis. The x and y parameters are subtracted from CRect. See AlsoI��)K�)0 0�2�2�����n�=������CRect::OffsetRect �\�)��)1������������)�)�*CRect::operator&=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")>K�)�)) "�*�2�������CRect::operator&=]+��)s�)2 4�V�r�=���~������void operator &=( const RECT& rect );)�)��)& ��2������Ks�)*2 4�2�R�=��~Q�=�����ParameterDescription��)*K�)b'��)n*; F�N�R�=��~�=���������rectContains a RECT or CRect. 4*�*) "��2�������Remarks��n*v*@ N�)�2���������������Sets CRect equal to the intersection of CRect and rect. The intersection is the largest rectangle contained in both rectangles. See AlsoL�*�*0 0�8�2�����Ԕ������CRect::IntersectRect �\v*O*1 ���������O*�*|*CRect::operator|=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")>�*�*) "�*�2�������CRect::operator|=]+O*�*2 4�V�r�=���~������void operator |=( const RECT& rect );)�**& ��2������K�*^*2 4�2�R�=��~Q�=�����ParameterDescriptionb'*�*; F�N�R�=��~�=���������rectContains a CRect or RECT. 4^*�*) "��2�������Remarks@��*4*A P���2����������������Sets CRect equal to the union of CRect and rect. The union is the smallest rectangle that contains both source rectangles. Windows ignores the dimensions of an empty rectangle; that is, a rectangle that has no height or has no width. See AlsoH�*|*0 0�0�2����pw
������CRect::UnionRect �[4**1����������*E*�	*CRect::operator+EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")=|*E*) "�(�2�������CRect::operator+^,*�*2 4�X�r�=���~������CRect operator +( POINT point ) const;)E*�*& ��2������K�**2 4�2�R�=��~Q�=�����ParameterDescriptione*�*|*; F�T�R�=��~�=���������pointContains a POINT or CPoint. 4*�*) "��2�������RemarksK�|*�*d ����2���������������������������Returns a new CRect that is equal to CRect displaced by point. Moves the CRect point.x units along the x-axis and point.y units along the y-axis. The x and y parameters are added to CRect's position. Returnsg5�*b	*2 4�j�2����������The CRect resulting from the offset by point. 5�*�	*) "��2�������See AlsoIb	*�	*0 0�2�2�����n�=������CRect::OffsetRect �[�	*l
*1����������l
*�
*G*CRect::operator-EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")=�	*�
*) "�(�2�������CRect::operator-^,l
**2 4�X�r�=���~������CRect operator -( POINT point ) const;)�
*0*& ��2������K*{*2 4�2�R�=��~Q�=�����ParameterDescriptione*0*�*; F�T�R�=��~�=���������pointContains a POINT or CPoint. 4{**) "��2�������RemarksN��*b
*d ����2���������������������������A new CRect that is equal to CRect displaced by -point. Moves the Rect -point.x units along the x-axis and -point.y units along the y-axis. The x and y parameters are subtracted from CRect's dimensions. Returnsg5*�
*2 4�j�2����������The CRect resulting from the offset by point. 5b
*�
*) "��2�������See AlsoI�
*G*0 0�2�2�����n�=������CRect::OffsetRect �[�
*�*1�����������**�A*CRect::operator&EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")=G**) "�(�2�������CRect::operator&d2�*t*2 4�d�r�=���~������CRect operator &( const RECT& rect2 ) const;)*�*& ��2������Kt*@*2 4�2�R�=��~Q�=�����ParameterDescription�*@*G*c(�*o@*; F�P�R�=��~�=���������rect2Contains a RECT or CRect. 3@*�@*(  ��������Returns��o@*`A*8 >�
������������A CRect that is the intersection of CRect and rect2. The intersection is the largest rectangle contained in both rectangles. 4�@*�A*(  ��������See AlsoK`A*�A*/ .�8�����Ԕ������CRect::IntersectRect �[�A*kB*1E���������kB*�B*�E*CRect::operator|EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")<�A*�B*(  �(�������CRect::operator|d2kB*C*2 4�d�r�=���~������CRect operator |( const RECT& rect2 ) const;)�B*4C*& ��2������KC*C*2 4�2�R�=��~Q�=�����ParameterDescriptionc(4C*�C*; F�P�R�=��~�=���������rect2Contains a RECT or CRect. 3C*D*(  ��������Returns��C*�D*7 >��������������A CRect that is the union of CRect and rect2. A union is the smallest rectangle that contains both source rectangles. �}D*tE*, (�����������Windows ignores the dimensions of an empty rectangle, that is, a rectangle that has no height or has no width. See AlsoG�D*�E*/ .�0����pw
������CRect::UnionRect �YtE*EF*1����������EF*{F*3�*class CRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_003')")6�E*{F*(  ��������class CRgn8EF*�F*) "��2�������Description��{F*�H*F Z�3�2��������㪌��������The CRgn class encapsulates a Windows graphical design interface (GDI) region. A region is an elliptical or polygonal area within a window. To use regions, you use the member functions of class CRgn in conjunction with the clipping functions defined as members of class CDC. The member functions of CRgn create, alter, and retrieve information about the region object for which they are called. ;�F*�H*) "�$�2�������Public MembersE�H*I*) "�8�2�������Construction/Destructiona'�H*sI*: D�N�R�ӀI���X����������CRgnConstructs a CRgn object. ;I*�I*) "�$�2�������Initialization�8sI*~L*� ��q�R����}���o�%*��������-����������E(���������S�؀�����������a��������CreateRectRgnInitializes a CRgn object with a rectangular region. CreateRectRgnIndirectInitializes a CRgn object with a rectangular region defined by a RECT structure. CreateEllipticRgnInitializes a CRgn object with an elliptical region. CreateEllipticRgnIndirectInitializes a CRgn object with an elliptical region defined by a RECT structure. CreatePolygonRgnInitializes a CRgn object with a polygonal region. The system closes the polygon automatically, if necessary, by drawing a line from the last vertex to the first. X��I*�N*� ր��R����}����
$��������q�����������x�܀���������n�~�����������CreatePolyPolygonRgnInitializes a CRgn object with a region consisting of a series of closed polygons. The polygons may be disjoint or they may overlap. CreateRoundRectRgnInitializes a CRgn object with a rectangular region with rounded corners. CombineRgnInitialize a CRgn object so that it is equivalent to the union of two specified CRgn objects. CopyRgnInitializes a CRgn object so that it is a copy of a specified CRgn object. 7~L*
O*) "��2�������Operations��N*-�*� ڀ�R����~�������������h!����������F	t��������,
R#��������c�������EqualRgnChecks two CRgn objects to determine whether they are equivalent. FromHandleReturns a po
O*-�*�E*inter to a CRgn object when given a handle to a Windows region. GetRgnBoxRetrieves the coordinates of the bounding rectangle of a CRgn object. OffsetRgnMoves a CRgn object by the specified offsets. PtInRegionDetermines whether a specified point is in the region. �
O*3�*J b�y�R����~����ư������yD��������RectInRegionDetermines whether any part of a specified rectangle is within the boundaries of the region. SetRectRgnSets the CRgn object to the specified rectangular region. �Z-�*��*1�	�����������*��*K�*CRgn::CombineRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")<3�*��*(  �(�������CRgn::CombineRgn�G��*�*> L���r�=���~����������int CombineRgn( CRgn* pRgn1, CRgn* pRgn2, int nCombineMode );)��*��*& ��2������K�*�*2 4�2�R�w��~Q�w�����ParameterDescription���*�*@ N���R�w��~�w�������������pRgn1Identifies an existing region. pRgn2Identifies an existing region. nCombineModeSpecifies the operation to be performed when combining the two source regions. It can be any one of the following values: C�*Q�*2 4�"�R����~Q�������ValueMeaning���*A�*b ���R����~�����������������������������RGN_ANDUses overlapping areas of both regions (intersection). RGN_COPYCreates a copy of region 1 (identified by pRgn1). RGN_DIFFCreates a region consisting of the areas of region 1 (identified by pRgn1) that are not part of region 2 (identified by pRgn2). RGN_ORCombines both regions in their entirety (union). RGN_XORCombines both regions but removes overlapping areas. 4Q�*u�*) "��2�������Remarks��A�*U�*; D�K�2��������������Creates a new GDI region by combining two existing regions. The regions are combined as specified by nCombineMode. The two specified regions are combined, and the resulting region handle is stored in the CRgn object. Thus, whatever region is stored in the CRgn object is replaced by the combined region. The size of a region is limited to 32,767 by 32,767 logical units or 64K of memory, whichever is smaller. Hu�*ԉ*7 >���r���������n�~������Note:Use CopyRgn to simply copy one region into another region. 3U�*�*(  ��������Returns{Vԉ*��*% ��������Specifies the type of the resulting region. It can be one of the following values: C�*Ŋ*2 4�"�R��~Q������ValueMeaning����*��*H ^�a�R��~������������������COMPLEXREGIONNew region has overlapping borders. ERRORNo new region created. NULLREGIONNew region is empty. SIMPLEREGIONNew region has no overlapping borders. 4Ŋ*�*(  ��������See AlsoZ%��*K�*5 :�J����n�~���������CRgn::CopyRgn, ::CombineRgn �W�*ӌ*1���������ӌ*�*��*CRgn::CopyRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")9K�*�*(  �"�������CRgn::CopyRgnU#ӌ*a�*2 4�F�r�=���~������int CopyRgn( CRgn* pRgnSrc );)�*��*& ��2������Ka�*Ս*2 4�2�R�=��~Q�=�����ParameterDescriptionZ+��*/�*/ .�V�R�=��~�=�����pRgnSrcIdentifies an existing region. 4Ս*c�*) "��2�������Remarks�/�*w�*L f���2�����������x�܀�������Copies the region defined by pRgnSrc into the CRgn object. The new region replaces the region formerly stored in the CRgn object. This function is a special case of CombineRgn. Returns|Vc�*�*& ���2������Specifies the type of the resulting region. It can be one of the following values: w�*�*K�*Cw�*O�*2 4�"�R��~Q������ValueMeaning���*G�*H ^�a�R��~������������������COMPLEXREGIONNew region has overlapping borders. ERRORNo new region created. NULLREGIONNew region is empty. SIMPLEREGIONNew region has no overlapping borders. 4O�*{�*(  ��������See Also](G�*��*5 :�P����x�܀�������CRgn::CombineRgn, ::CombineRgn �a{�*j�*1����������j�*��*P�*CRgn::CreateEllipticRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")C��*��*(  �6�������CRgn::CreateEllipticRgn�Ej�*6�*D X���r�=���~������������BOOL CreateEllipticRgn( int x1, int y1, int x2, int y2 );)��*_�*& ��2������K6�*��*2 4�2�R�=��~Q�=�����ParameterDescription��_�*��*H ^�g�R�=��~�=�����������������x1Specifies the logical x-coordinate of the upper-left corner of the bounding rectangle of the ellipse. y1Specifies the logical y-coordinate of the upper-left corner of the bounding rectangle of the ellipse. x2Specifies the logical x-coordinate of the lower-right corner of the bounding rectangle of the ellipse. y2Specifies the logical y-coordinate of the lower-right corner of the bounding rectangle of the ellipse. 4��*��*) "��2�������Remarks3���*�*Y ����2���������������������y������Creates an elliptical region. The region is defined by the bounding rectangle specified by x1, y1, x2, and y2. The region is stored in the CRgn object. The size of a region is limited to 32,767 by 32,767 logical units or 64K of memory, whichever is smaller. When it has finished using a region created with the CreateEllipticRgn function, an application should select the region out of the device context and use the DeleteObject function to remove it. 4��*@�*) "��2�������Returnsg8�*��*/ .�p�2���������TRUE if the operation succeeded; otherwise FALSE. 5@�*��*) "��2�������See Alsot>��*P�*6 <�|�2����S�؀�������CRgn::CreateEllipticRgnIndirect, ::CreateEllipticRgn �i��*��*1=�����������*6�*B�*CRgn::CreateEllipticRgnIndirectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")L#P�*6�*) "�F�2�������CRgn::CreateEllipticRgnIndirecth6��*��*2 4�l�r�=���~������BOOL CreateEllipticRgnIndirect( LPRECT lpRect );)6�*��*& ��2������K��*�*2 4�2�R�=��~Q�=�����ParameterDescription����*�*< F�i�R�=��~�=���������lpRectPoints to a RECT structure or CRect object that contains the logical coordinates of the upper-left and lower-right corners of the bounding rectangle of the ellipse. 4�*6�*) "��2�������Remarks���*2�*N j�]�2���������������y���������Creates an elliptical region. The region is defined by lpRect and is stored in the CRgn object. The size of a region is limited to 32,767 by 32,767 logical units or 64K of memory, whichever is smaller. When it has finished using a region created with the CreateEllipticRgnIndirect function, an application should select the region out of the device context and use the DeleteObject function to remove it. Returnsg86�*��*/ .�p�2���������TRUE if the operation succeeded; otherwise FALSE. 52�*��*) "��2�������See Alsot>��*B�*6 <�|�2����E(���������CRgn::CreateEllipticRgn, ::CreateEllipticRgnIndirect �`��*��*1�
�����������*"+2
+CRgn::CreatePolygonRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")CB�*"+) "�4�2�������CRg��*"+B�*n::CreatePolygonRgn�K��*�+> L���r�=���~����������BOOL CreatePolygonRgn( LPPOINT lpPoints, int nCount, int nMode );)"+�+& ��2������K�++2 4�2�R�=��~Q�=�����ParameterDescription���++j ���R�=��~�=���������������������������lpPointsPoints to an array of POINT structures or an array of CPoint objects. Each structure specifies the x-coordinate and y-coordinate of one vertex of the polygon. nCountSpecifies the number of POINT structures or CPoint objects in the array pointed to by lpPoints. nModeSpecifies the filling mode for the region. This parameter may be either ALTERNATE or WINDING. 4+H+) "��2�������Remarksi4+�+5 8�i�2������������Creates a polygonal region. The system closes the polygon automatically, if necessary, by drawing a line from the last vertex to the first. The resulting region is stored in the CRgn object. The size of a region is limited to 32,767 by 32,767 logical units or 64K of memory, whichever is smaller. When the polygon-filling mode is ALTERNATE, the system fills the area between odd-numbered and even-numbered polygon sides on each scan line. That is, the system fills the area between the first and second side, between the third and fourth side, and so on. b5H++- (�k�2��������When the polygon-filling mode is WINDING, the system uses the direction in which a figure was drawn to determine whether to fill an area. Each line segment in a polygon is drawn in either a clockwise or a counterclockwise direction. Whenever an imaginary line drawn from an enclosed area to the outside of a figure passes through a clockwise line segment, a count is incremented. When the line passes through a counterclockwise line segment, the count is decremented. The area is filled if the count is nonzero when the line reaches the outside of the figure. ��+(	+@ N���2���������y���������When an application has finished using a region created with the CreatePolygonRgn function, it should select the region out of the device context and use the DeleteObject function to remove it. Returnsg8+�	+/ .�p�2���������TRUE if the operation succeeded; otherwise FALSE. 5(	+�	+) "��2�������See Alson8�	+2
+6 <�p�2�����
$��������CRgn::CreatePolyPolygonRgn, ::CreatePolygonRgn �d�	+�
+1k
����������
++�F+CRgn::CreatePolyPolygonRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")G2
++) "�<�2�������CRgn::CreatePolyPolygonRgn�m�
+�+D X���r�=���~������������BOOL CreatePolyPolygonRgn( LPPOINT lpPoints, LPINT lpPolyCounts, int nCount, int nPolyFillMode );)+�+& ��2������K�+3+2 4�2�R�_��~Q�_�����ParameterDescription8��+k+J b���R�_��~�_���������������lpPointsPoints to an array of POINT structures or an array of CPoint objects that define the vertices of the polygons. Each polygon must be explicitly closed because the system does not close them automatically. The polygons are specified consecutively. lpPolyCountsPoints to an array of integers. The first integer specifies the number of vertices in the first polygon in the lpPoints array, the second integer specifies the number of vertices in the second polygon, and so on. �3+l+J b�o�R�_��~�_���������������nCountSpecifies the total number of integers in the lpPolyCounts array. nPolyFillModeSpecifies the polygon-filling mode. This value may be either ALTERNATE or WINDING. 4k+�+) "��2�������RemarksMl+�A+6 :�/�2�������������Creates a region consisting of a series o�+�A+2
+f closed polygons. The resulting region is stored in the CRgn object. The polygons may be disjoint or they may overlap. The size of a region is limited to 32,767 by 32,767 logical units or 64K of memory, whichever is smaller. When the polygon-filling mode is ALTERNATE, the system fills the area between odd-numbered and even-numbered polygon sides on each scan line. That is, the system fills the area between the first and second side, between the third and fourth side, and so on. b5�+[D+- (�k�2��������When the polygon-filling mode is WINDING, the system uses the direction in which a figure was drawn to determine whether to fill an area. Each line segment in a polygon is drawn in either a clockwise or a counterclockwise direction. Whenever an imaginary line drawn from an enclosed area to the outside of a figure passes through a clockwise line segment, a count is incremented. When the line passes through a counterclockwise line segment, the count is decremented. The area is filled if the count is nonzero when the line reaches the outside of the figure. ��A+tE+@ N���2���������y���������When an application has finished using a region created with the CreatePolyPolygonRgn function, it should select the region out of the device context and use the DeleteObject function to remove it. Returnsg8[D+�E+/ .�p�2���������TRUE if the operation succeeded; otherwise FALSE. 5tE+F+) "��2�������See Also�R�E+�F+B T���2������a����N�@���������CRgn::CreatePolygonRgn, CDC::SetPolyFillMode, ::CreatePolyPolygonRgn �]F+2G+1����������2G+rG+�L+CRgn::CreateRectRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")@�F+rG+) "�.�2�������CRgn::CreateRectRgn�A2G+�G+D X���r�=���~������������BOOL CreateRectRgn( int x1, int y1, int x2, int y2 );)rG+ H+& ��2������K�G+kH+2 4�2�R�=��~Q�=�����ParameterDescription�G H+�I+H ^���R�=��~�=�����������������x1Specifies the logical x-coordinate of the upper-left corner of the region. y1Specifies the logical y-coordinate of the upper-left corner of the region. x2Specifies the logical x-coordinate of the lower-right corner of the region. y2Specifies the logical y-coordinate of the lower-right corner of the region. 4kH+.J+) "��2�������Remarks�I�I+�K+H ^���2�������������y���������Creates a rectangular region that is stored in the CRgn object. The size of a region is limited to 32,767 by 32,767 logical units or 64K of memory, whichever is smaller. When it has finished using a region created by CreateRectRgn, an application should use the DeleteObject function to remove the region. Returnsg8.J+&L+/ .�p�2���������TRUE if the operation succeeded; otherwise FALSE. 5�K+[L+) "��2�������See Also�T&L+�L+B T���2����-����q�����������CRgn::CreateRectRgnIndirect, CRgn::CreateRoundRectRgn, ::CreateRectRgn �e[L+�M+1�����������M+�M+��+CRgn::CreateRectRgnIndirectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")H�L+�M+) "�>�2�������CRgn::CreateRectRgnIndirectd2�M+3N+2 4�d�r�=���~������BOOL CreateRectRgnIndirect( LPRECT lpRect );)�M+\N+& ��2������K3N+�N+2 4�2�R�=��~Q�=�����ParameterDescription��\N+|O+< F�3�R�=��~�=���������lpRectPoints to a RECT structure or CRect object that contains the logical coordinates of the upper-left and lower-right corners of the region. 4�N+�O+) "��2�������Remarks�Q|O+U�+H ^���2�������������y���������Creates�O+U�+�L+ a rectangular region that is stored in the CRgn object. The size of a region is limited to 32,767 by 32,767 logical units or 64K of memory, whichever is smaller. When it has finished using a region created by CreateRectRgnIndirect, an application should use the DeleteObject function to remove the region. Returnsg8�O+��+/ .�p�2���������TRUE if the operation succeeded; otherwise FALSE. 5U�+�+) "��2�������See Also�T��+��+B T���2����o�%*����q�����������CRgn::CreateRectRgn, CRgn::CreateRoundRectRgn, ::CreateRectRgnIndirect �b�+�+1�����������+_�+��+CRgn::CreateRoundRectRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")E��+_�+) "�8�2�������CRgn::CreateRoundRectRgn�Z�+	�+P p���r�=���~����������������BOOL CreateRoundRectRgn( int x1, int y1, int x2, int y2, int x3, int y3 );)_�+2�+& ��2������K	�+}�+2 4�2�R�=��~Q�=�����ParameterDescription:�2�+��+X ~���R�=��~�=�������������������������x1Specifies the logical x-coordinate of the upper-left corner of the region. y1Specifies the logical y-coordinate of the upper-left corner of the region. x2Specifies the logical x-coordinate of the lower-right corner of the region. y2Specifies the logical y-coordinate of the lower-right corner of the region. x3Specifies the width of the ellipse used to create the rounded corners. y3Specifies the height of the ellipse used to create the rounded corners. 4}�+�+) "��2�������Remarks����+͈+H ^�5�2�������������y���������Creates a rectangular region with rounded corners that is stored in the CRgn object. The size of a region is limited to 32,767 by 32,767 logical units or 64K of memory, whichever is smaller. When an application has finished using a region created with the CreateRoundRectRgn function, it should select the region out of the device context and use the DeleteObject function to remove it. Returnsg8�+4�+/ .�p�2���������TRUE if the operation succeeded; otherwise FALSE. 5͈+i�+) "��2�������See Also�T4�+��+B T���2����o�%*����-��������CRgn::CreateRectRgn, CRgn::CreateRectRgnIndirect, ::CreateRoundRectRgn �Xi�+��+1������������+Ê+��+CRgn::EqualRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')");��+Ê+) "�$�2�������CRgn::EqualRgnZ(��+�+2 4�P�r�=���~������BOOL EqualRgn( CRgn* pRgn ) const;)Ê+F�+& ��2������K�+��+2 4�2�R�=��~Q�=�����ParameterDescriptionMF�+ދ+/ .�<�R�=��~�=�����pRgnIdentifies a region. 4��+�+) "��2�������Remarks�jދ+��+3 6���2�����������Determines whether the given region is equivalent to the region stored in the CRgn object. Returnsn?�+�+/ .�~�2���������TRUE if the two regions are equivalent; otherwise FALSE. 5��+R�+) "��2�������See Also:�+��+* $� �2��������::EqualRgn �ZR�+�+1����������+T�+��+CRgn::FromHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")=��+T�+) "�(�2�������CRgn::FromHandle]+�+��+2 4�V�r�=���~������static CRgn* FromHandle( HRGN hRgn );)T�+ڎ+& ��2������K��+%�+2 4�2�R�=��~Q�=�����ParameterDescription`1ڎ+��+/ .�b�R�=��~�=�����hRgnSpecifies a handle to a Windows region. 4%�+��+) "��2�������Remarks���+��+? L���2��������������Returns��+��+��+ a pointer to a CRgn object when given a handle to a Windows region. If a CRgn object is not already attached to the handle, a temporary CRgn object is created and attached. This temporary CRgn object is valid only until the next time the application has idle time in its event loop, at which time all temporary graphic objects are deleted. Another way of saying this is that the temporary object is only valid during the processing of one window message. 4��+�+) "��2�������Returns�a��+��+2 4���2����������A pointer to a CRgn object. If the function was not successful, the return value is NULL. �Y�+/�+1����������/�+k�+��+CRgn::GetRgnBoxEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")<��+k�+) "�&�2�������CRgn::GetRgnBox]+/�+��+2 4�V�r�=���~������int GetRgnBox( LPRECT lpRect ) const;)k�+��+& ��2������K��+<�+2 4�2�R�=��~Q�=�����ParameterDescription�p��+��+; F���R�=��~�=���������lpRectPoints to a RECT structure or CRect object to receive the coordinates of the bounding rectangle. 4<�+�+) "��2�������Remarks�W��+��+3 6���2�����������Retrieves the coordinates of the bounding rectangle of the CRgn object. ReturnsmG�+�+& ���2������Specifies the region's type. It can be any of the following values: C��+U�+2 4�"�R�
�~Q�
�����ValueMeaning��+a�+N j�}�R�
�~�
�������������������COMPLEXREGION Region has overlapping borders. NULLREGIONRegion is empty. ERRORCRgn object does not specify a valid region. SIMPLEREGION Region has no overlapping borders. 4U�+��+(  ��������See Also:a�+��+) "�"��������::GetRgnBox �Y��+Y�+1
���������Y�+��+m�+CRgn::OffsetRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')");��+��+(  �&�������CRgn::OffsetRgn�HY�+!�+E Z���r�=���~�������������int OffsetRgn( int x, int y );int OffsetRgn( POINT point );)��+J�+& ��2������K!�+��+2 4�2�R�=��~�=�����ParameterDescription�hJ�+[�+^ ����R�=��~�=�����������������������xSpecifies the number of units to move left or right. ySpecifies the number of units to move up or down. pointThe x-coordinate of point specifies the number of units to move left or right. The y-coordinate of point specifies the number of units to move up or down. The point parameter may be either a POINT structure or a CPoint object. 4��+��+) "��2�������Remarks��[�+`�+M h�	�2��������������������Moves the region stored in the CRgn object by the specified offsets. The function moves the region x units along the x-axis and y units along the y-axis. The coordinate values of a region must be less than or equal to 32,767 and greater than or equal to -32,768. The nXOffset and nYOffset parameters must be carefully chosen to prevent invalid region coordinates. ReturnskE��+��+& ���2������The new region's type. It can be any one of the following values: C`�+�+2 4�"�R��~
������ValueMeaning����+��+H ^�S�R��~������������������COMPLEXREGIONRegion has overlapping borders. ERRORRegion handle is not valid. NULLREGIONRegion is empty. SIMPLEREGIONRegion has no overlapping borders. 4�+3�+(  ��������See Also:��+m�+) "�"��������::OffsetRgn �Z3�+,1����������,H,�,CRgn::PtInRegionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")m�+,m�+<m�+H,(  �(�������CRgn::PtInRegion�X,�,E Z���r�=���~�������������BOOL PtInRegion( int x, int y ) const;BOOL PtInRegion( POINT point ) const;)H,,& ��2������K�,Y,2 4�2�R�=��~�=�����ParameterDescription�:,�,X ~�u�R�=��~�=���������������������xSpecifies the logical x-coordinate of the point to test. ySpecifies the logical y-coordinate of the point to test. pointThe x- and y-coordinate of point specify the x- and y-coordinate of the point to test the value of. The point parameter can either be a POINT structure or a CPoint object. 4Y,,) "��2�������Remarks�i�,�,? N���2���������������Checks whether the point given by x and y is in the region stored in the CRgn object. Returnsj;,1,/ .�v�2���������TRUE if the point is in the region; otherwise FALSE. 5�,f,) "��2�������See Also<1,�,* $�$�2��������::PtInRegion �\f,/,1����������/,n,�,CRgn::RectInRegionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")?�,n,) "�,�2�������CRgn::RectInRegiona//,�,2 4�^�r�=���~������BOOL RectInRegion( LPRECT lpRect ) const;)n,�,& ��2������K�,C,2 4�2�R�=��~Q�=�����ParameterDescriptionv;�,�,; F�v�R�=��~�=���������lpRectPoints to a RECT structure or CRect object. 4C,�,) "��2�������Remarks���,�,: B�)�2�������������Determines whether any part of the rectangle specified by lpRect is within the boundaries of the region stored in the CRgn object. Returns�m�,W,/ .���2���������TRUE if any part of the specified rectangle lies within the boundaries of the region; otherwise FALSE. 5�,�,) "��2�������See Also>W,�,* $�(�2��������::RectInRegion �T�,O	,1����������O	,�	,,CRgn::CRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")7�,�	,) "��2�������CRgn::CRgn8O	,�	,, (��r�=���~����CRgn() ;)�	,�	,& ��2������4�	,
,) "��2�������Remarks���	,,9 @�}�2������������Constructs a CRgn object. The m_hObject data member does not contain a valid Windows GDI region until the object is initialized with one or more of the other CRgn member functions. �Z
,�,1)����������,�,�B,CRgn::SetRectRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRgn')")=,�,) "�(�2�������CRgn::SetRectRgn�d�,�,Q r���r�=���~�����������������void SetRectRgn( int x1, int y1, int x2, int y2 );void SetRectRgn( LPRECT lpRect );)�,�,& ��2������K�,
,2 4�2�R�=��~Q�=�����ParameterDescription"��,%,\ ����R�=��~�=�������������������������x1Specifies the x-coordinate of the upper-left corner of the rectangular region. y1Specifies the y-coordinate of the upper-left corner of the rectangular region. x2Specifies the x-coordinate of the lower-right corner of the rectangular region. y2Specifies the y-coordinate of the lower-right corner of the rectangular region. lpRectSpecifies the rectangular region. Can be either a pointer to a RECT structure or a CRect object. 4
,Y,) "��2�������Remarks$�%,�A,] ����2�����o�%*�������������������Creates a rectangular region. Unlike CreateRectRgn, however, it does Y,�A,,not allocate any additional memory from the local Windows application heap. Instead, it uses the space allocated for the region stored in the CRgn object. This means that the CRgn object must already have been initialized with a valid Windows region before calling SetRectRgn. The points given by x1, y1, x2, and y2 specify the minimum size of the allocated space. �vY,8B,9 B���2�����o�%*��������Use this function instead of the CreateRectRgn function to avoid calls to the local memory manager. See Alsoa+�A,�B,6 <�V�2����o�%*��������CRgn::CreateRectRgn, ::SetRectRgn �_8B,)C,1�	���������)C,fC,1M,class CScrollBarEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')")=�B,fC,) "�(�2�������class CScrollBar8)C,�C,) "��2�������DescriptionH�fC,�E,Y ����2�������������h������������The CScrollBar class provides the functionality of a Windows scroll-bar control. You create a scroll-bar control in two steps. First, call the constructor CScrollBar to construct the CScrollBar object, then call the Create member function to create the scroll-bar control and attach it to the CScrollBar object. If you create a CScrollBar object within a dialog box (through a dialog resource), the CScrollBar is automatically destroyed when the user closes the dialog box. -��C,H,R r���2���������������������If you create a CScrollBar object within a window, you may also need to destroy it. If you create the CScrollBar object on the stack, it is destroyed automatically. If you create the CScrollBar object on the heap by using the new function, you must call delete on the object to destroy it when the user terminates the Windows scroll bar. If you allocate any memory in the CScrollBar object, override the CScrollBar destructor to dispose of the allocations. 5�E,HH,) "��2�������See Alsos+H,�H,H `�V�2����+������f������K�������CWnd, CModalDialog, CDialog ]-HH,I,0 0�Z�2����������Public MembersConstruction/Destructionn3�H,�I,; F�f�R�=��~�=��u���������CScrollBarConstructs a CScrollBar object. ;I,�I,) "�$�2�������Initialization�X�I,SJ,: D���R��1����h��������CreateCreates the Windows scroll bar and attaches it to the CScrollBar object. 7�I,�J,) "��2�������Operations�DSJ,.L,` ����R���k~����Df̀�����4�ڀ�����};�N��������J������GetScrollPosRetrieves the current position of a scroll box. SetScrollPosSets the current position of a scroll box. GetScrollRangeRetrieves the current minimum and maximum scroll-bar positions for the given scroll bar. SetScrollRangeSets minimum and maximum position values for the given scroll bar. B�J,pL,) "�2�2�������Windows 3.1 Functions�~.L,1M,C V���R���g~����ռ�������hg��������ShowScrollBarShows or hides a scroll bar. EnableScrollBarEnables or disables one or both arrows of a scroll bar. �fpL,�M,1�����������M,
N,�,CScrollBar::CScrollBarEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CScrollBar')")B1M,
N,(  �4�������CScrollBar::CScrollBar=�M,GN,, (�"�r�=���~����CScrollBar();)
N,pN,& ��2������4GN,�N,) "��2�������Remarks��pN,�O,@ N�I�2�������\僭��������Constructs a CScrollBar object. After constructing the object, call the Create member function to create and initialize the Windows scroll bar. See AlsoJ�N,�,0 0�4�2�����h������CScrollBar::Create �O,�,1M,�b�O,��,1������������,ހ,y�,CScrollBar::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CScrollBar')")?�,ހ,) "�,�2�������CScrollBar::Create�W��,y�,D X���r�=���~������������BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );)ހ,��,& ��2������Ky�,�,2 4�2�R�=��~Q�=�����ParameterDescription�@��,��,r ����R�=��~�=�����z!���������������������������dwStyleSpecifies the scroll bar's style. rectSpecifies the scroll bar's size and position. Can be either a RECT structure or a CRect object. pParentWndSpecifies the scroll bar's parent window, usually a CDialog or CModalDialog object. It must not be NULL. nIDThe scroll bar's resource ID. 4�,Ӄ,) "��2�������Remarks�5��,Z�,R r�k�2���������\僭�������6C4�����You construct a CScrollBar object in two steps. First call the constructor, which constructs the CScrollBar object, then call Create, which creates and initializes the associated Windows scroll bar and attaches it to the CScrollBar object. Apply the following window styles to a scroll bar: GӃ,��,2 4�*�R����~Q�������StyleApplication�BZ�,"�,? N���R����~���������������WS_CHILDAlways. WS_VISIBLEUsually. WS_DIABLEDRarely. �O��,��,8 @��������z!��������Apply any combination of scroll-bar styles to the scroll bar. ReturnsO*"�,��,% �T������Nonzero if successful; otherwise zero. 4��,,�,(  ��������See AlsoM��,y�,/ .�<�����u�������CScrollBar::CScrollBar �h,�,�,1�����������,V�,��,CScrollBar::GetScrollPosEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CScrollBar')")Dy�,V�,(  �8�������CScrollBar::GetScrollPosI�,��,, (�:�r�=���~����int GetScrollPos() const;)V�,Ȉ,& ��2������4��,��,) "��2�������Remarks@Ȉ,<�,. *�%�2���������Retrieves the current position of a scroll box. The current position is a relative value that depends on the current scrolling range. For example, if the scrolling range is 100 to 200 and the scroll box is in the middle of the bar, the current position is 150. ReturnszT��,��,& ���2������Specifies the current position of the scroll box, if successful. Otherwise zero. 5<�,�,) "��2�������See Also�r��,��,N l���2����4�ڀ���};�N������J��������CScrollBar::SetScrollPos, CScrollBar::GetScrollRange, CScrollBar::SetScrollRange, ::GetScrollPos �j�,F�,1$���������F�,��,�,CScrollBar::GetScrollRangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CScrollBar')")G��,��,) "�<�2�������CScrollBar::GetScrollRange|DF�,	�,8 @���r�=���~��������void GetScrollRange( LPINT lpMinPos, LPINT lpMaxPos ) const;)��,2�,& ��2������K	�,}�,2 4�2�R�=��~Q�=�����ParameterDescription��2�,^�,8 >�S�R�=��~�=���������lpMinPosPoints to the integer variable that is to receive the minimum position. lpMaxPosPoints to the integer variable that is to receive the maximum position. 4}�,��,) "��2�������Remarks!�^�,��,; D���2��������������Copies the current minimum and maximum scroll-bar positions for the given scroll bar to the locations specified by lpMinPos and lpMaxPos. The default range for a scroll-bar control is empty (both values are 0). See Also�r��,�,N l���2��������J�����Df̀���4�ڀ������,�,��,�::GetScrollRange, CScrollBar::SetScrollRange, CScrollBar::GetScrollPos, CScrollBar::SetScrollPos �h��,�,1�����������,]�,�,CScrollBar::SetScrollPosEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CScrollBar')")E�,]�,) "�8�2�������CScrollBar::SetScrollPosz<�,��,> L�x�r�=���~����������int SetScrollPos( int nPos, BOOL bRedraw = TRUE );)]�,�,& ��2������K��,K�,2 4�2�R�=��~Q�=�����ParameterDescription�>�,��,J b�}�R�=��~�=���������������nPosSpecifies the new position for the scroll bar thumb. It must be within the scrolling range. bRedrawSpecifies whether the scroll bar should be redrawn to reflect the new position. If bRedraw is TRUE, the scroll bar is redrawn. If it is FALSE, it is not redrawn. The scroll bar is redrawn by default. 4K�,�,) "��2�������Remarks�K��,��,A P���2����������������Sets the current position of a scroll box to that specified by nPos and, if specified, redraws the scroll bar to reflect the new position. Set bRedraw to FALSE whenever the scroll bar will be redrawn by a subsequent call to another function to avoid having the scroll bar redrawn twice within a short interval. Returns{U�,�,& ���2������Specifies the previous position of the scroll box, if successful. Otherwise zero. 5��,C�,) "��2�������See Also�r�,�,N l���2�����Df̀���};�N������J��������CScrollBar::GetScrollPos, CScrollBar::GetScrollRange, CScrollBar::SetScrollRange, ::SetScrollPos �jC�,��,1������������,��,��,CScrollBar::SetScrollRangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CScrollBar')")G�,��,) "�<�2�������CScrollBar::SetScrollRange�Q��,z�,D X���r�=���~������������void SetScrollRange( int nMinPos, int nMaxPos, BOOL bRedraw = TRUE );)��,��,& ��2������Kz�,��,2 4�2�R�=��~Q�=�����ParameterDescription~,��,l�,R r�Y�R�=��~�=�������������������nMinPosSpecifies the minimum scrolling position. nMaxPosSpecifies the maximum scrolling position. bRedrawSpecifies whether the scroll bar should be redrawn to reflect the change. If bRedraw is TRUE, the scroll bar is redrawn; if FALSE, it is not redrawn. It is redrawn by default. 4��,��,) "��2�������Remarks�l�,��,Y ��_�2�����������rR*�����m6����������Sets minimum and maximum position values for the given scroll bar. Set nMinPos and nMaxPos to 0 to hide or show standard scroll bars. Do not call this function to hide a scroll bar while processing a scroll-bar notification message. If a call to SetScrollRange immediately follows a call to the SetScrollPos member function, set bRedraw to SetScrollPos to 0 to prevent the scroll bar from being redrawn twice. ���,��,F Z���2�����������������The difference between the values specified by nMinPos and nMaxPos must not be greater than INT_MAX. The default range for a scroll bar control is empty (both nMinPos and nMaxPos are zero). See Also�r��,��,N l���2�����Df̀���4�ڀ���};�N��������CScrollBar::GetScrollPos, CScrollBar::SetScrollPos, CScrollBar::GetScrollRange, ::SetScrollRange �Z��,
�,1����������
�,E�,�-class CSizeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_004')")8��,E�,) "��2�������class CSize8
�,}�,) "��2�������Description��E�,t-F Z�K�2�������l��ˀ����l��ˀ����The CSize class is similar to the Windows SIZE structu}�,t-��,re, which implements a relative coordinate or position. A SIZE structure has the following form: (}�,�-% ��0�����[3t-�-(  �f�0���	�����typedef struct tagSIZE {int cx;int cy;} SIZE;c��-Z-p ����������������l��ˀ����������l��ˀ�������The cx and cy members of CSize are public. In addition, CSize implements member functions to manipulate the SIZE structure. Because CSize derives from tagSIZE, CSize objects may be used as SIZE structures. See AlsoT�-�-; F�2����	�����'�������CRect, CPoint ]-Z--0 0�Z�2����������Public MembersConstruction/Destructionc)�-n-: D�R�R�݀?��㔯 ���������CSizeConstructs a CSize object. 7-�-) "��2�������OperationsR�n-�-x ����R�C��~�C����������㵟ۀ��������L(����������
��������operator==Checks for equality between CSize and a size. operator!=Checks for inequality between CSize and a size. operator+=Adds a size to CSize. operator-=Subtracts a size from CSize. M$�-D-) "�H�2�������Operators Returning CSize Values�L�-�-C V���R�%��~�%��2���������8�R������operator+Adds the two sizes. operator-Subtracts the two sizes. �WD-[-1����������[-�-�	-CSize::CSizeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CSize')")8�-�-(  � �������CSize::CSize�j[-V-Y ����r�=���~���������������������CSize();CSize( int initCX, int initCY );CSize( SIZE initSize );CSize( POINT initPt );)�--& ��2������KV-�-2 4�2�R�=��~Q�=�����ParameterDescriptionb�-,	-~ ʀ��R�=��~�=��������������������l��ˀ��������������initCXSets the cx member for the CSize. initCYSets the cy member for the CSize. initSizeWindows SIZE structure used to initialize CSize. initPtWindows POINT structure used to initialize CSize. 4�-`	-) "��2�������Remarks�f,	-�	-8 @���2������������Constructs a CSize object. If no arguments are given, cx and cy members are not initialized. �\`	-�
-1Z����������
-�
-�-CSize::operator==EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CSize')")>�	-�
-) "�*�2�������CSize::operator==[)�
-$-2 4�R�r�=���~������BOOL operator==( SIZE size ) const;)�
-M-& ��2������K$-�-2 4�2�R�=��~Q�=�����ParameterDescriptionb'M-�-; F�N�R�=��~�=����l��ˀ����sizeA Windows SIZE structure. 4�-.-) "��2�������Remarksa4�-�-- *�h�2���������Checks for equality between two sizes. Returnsc4.-�-/ .�h�2���������TRUE if the sizes are equal; otherwise FALSE. �\�-
-1`���������
-�
-@-CSize::operator!=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CSize')")>�-�
-) "�*�2�������CSize::operator!=[)
--2 4�R�r�=���~������BOOL operator!=( SIZE size ) const;)�
-A-& ��2������K-�-2 4�2�R�=��~Q�=�����ParameterDescriptionb'A-�-; F�N�R�=��~�=����l��ˀ����sizeA Windows SIZE structure. 4�-"-) "��2�������Remarksc6�-�-- *�l�2���������Checks for inequality between two sizes. Returnsg8"-@-/ .�p�2���������TRUE if the sizes are not equal; otherwise FALSE. �-@-�-�\�-�@-1�����������@-�@-B-CSize::operator+=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CSize')")>@-�@-) "�*�2�������CSize::operator+=U#�@-,A-2 4�F�r�=���~������void operator+=( SIZE size );)�@-UA-& ��2������K,A-�A-2 4�2�R�=��~Q�=�����ParameterDescriptionb'UA-B-; F�N�R�=��~�=����l��ˀ����sizeA Windows SIZE structure. 4�A-6B-) "��2�������RemarksIB-B-, (�:�2��������Adds a size to a CSize. �\6B-C-1����������C-JC-�D-CSize::operator-=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CSize')")>B-JC-) "�*�2�������CSize::operator-=U#C-�C-2 4�F�r�=���~������void operator-=( SIZE size );)JC-�C-& ��2������K�C-D-2 4�2�R�=��~Q�=�����ParameterDescriptionb'�C-uD-; F�N�R�=��~�=����l��ˀ����sizeA Windows SIZE structure. 4D-�D-) "��2�������RemarksP$uD-�D-, (�H�2��������Subtracts a size from a CSize. �[�D-�E-1�����������E-�E-�G-CSize::operator+EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CSize')")=�D-�E-) "�(�2�������CSize::operator+[)�E-F-2 4�R�r�=���~������CSize operator+( SIZE size ) const;)�E-FF-& ��2������KF-�F-2 4�2�R�=��~Q�=�����ParameterDescriptionb'FF-�F-; F�N�R�=��~�=����l��ˀ����sizeA Windows SIZE structure. 3�F-&G-(  ��������Returns^3�F-�G-+ &�f��������Returns a CSize that is the sum of two sizes. �[&G-H-1����������H-LH-J-CSize::operator-EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CSize')")<�G-LH-(  �(�������CSize::operator-[)H-�H-2 4�R�r�=���~������CSize operator-( SIZE size ) const;)LH-�H-& ��2������K�H-I-2 4�2�R�=��~Q�=�����ParameterDescriptionb'�H-}I-; F�N�R�=��~�=����l��ˀ����sizeA Windows SIZE structure. 3I-�I-(  ��������Returnsj?}I-J-+ &�~��������Returns a CSize that is the difference between two sizes. �\�I-�J-1�����������J-�J-q�-class CStaticEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')")9J-�J-(  �"�������class CStatic8�J-K-) "��2�������Description+��J-CM-L f���2������������%���������The CStatic class provides the functionality of a Windows static control. A static control is a simple text field, box, or rectangle that can be used to label, box, or separate other controls. A static control takes no input and provides no output. You create a static control in two steps. First, call the constructor CStatic to construct the CStatic object, then call the Create member function to create the static control and attach it to the CStatic object. YK-�O-R r��2���������������������If you create a CStatic object within a dialog box (through a dialog resource), the CStatic object is automatically destructed when the user closes the dialog box. If you create a CStatic object within a window, you may also need to destroy it. A CStatic object created on the stack within a window is automatically destroyed. If you create the CStatic object on the heap by using the new function, you must call delete on the object to destroy it when the user terminates the Windows static control. 5CM-�O-) "��2�������See Also�p�O-р-� ؀��2����+�����O-р-J-�N�����Є'�����9�����"�������3Iـ�����f������K�������CWnd, CButton, CComboBox, CEdit, CListBox, CScrollBar, CModalDialog, CDialog ]-�O-.�-0 0�Z�2����������Public MembersConstruction/Destructiong-р-��-: D�Z�R���%����2��������CStaticConstructs a CStatic object. ;.�-Ё-) "�$�2�������Initialization�Y��-c�-: D���R��1���%����������CreateCreates the Windows static control and attaches it to the CStatic object. BЁ-��-) "�2�2�������Windows 3.1 Functions��c�-q�-D V��R����BB�������V�L������SetIconAssociates an icon with an icon resource. GetIconRetrieves the handle of the icon associated with an icon resource. �]��-��-1o�����������-;�-y�-CStatic::CStaticEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CStatic')")<q�-;�-(  �(�������CStatic::CStatic:��-u�-, (��r�=���~����CStatic(););�-��-& ��2������4u�-҄-) "��2�������Remarks`-��-2�-3 6�Z�2�����������Constructs a CStatic object. See AlsoG҄-y�-0 0�.�2����%��������CStatic::Create �\2�-�-1X����������-B�-i�-CStatic::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CStatic')")<y�-B�-) "�&�2�������CStatic::Create�z�-�-J d���r�=���~��������������BOOL Create( const char FAR* lpText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );)B�-/�-& ��2������K�-z�-2 4�2�R�=��~Q�=�����ParameterDescriptionB�/�-��-� ڀy�R�=��~�=����������8G������������������������������lpTextSpecifies the text to place in the control. If NULL, no text will be visible. dwStyleSpecifies the static control's window style. rectSpecifies the position and size of the static control. It can be either a RECT structure or a CRect object. pParentWndSpecifies the CStatic parent window, usually a CDialog or CModalDialog object. It must not be NULL. nIDSpecifies the static control's resource ID. 4z�-��-) "��2�������RemarksN���->�-R r���2���������\僭�������6C4�����You construct a CStatic object in two steps. First call the constructor CStatic, then call Create, which creates the Windows static control and attaches it to the CStatic object. Apply the following window styles to a static control: G��-��-2 4�*�R����~Q�������StyleApplication�B>�-�-? N���R����~���������������WS_CHILDAlways. WS_VISIBLEUsually. WS_DIABLEDRarely. �W��-��-8 @�������8G���������Apply any combination of static control styles to the static control. ReturnsY+�-�-. ,�V���������TRUE if successful; otherwise FALSE. 4��-"�-(  ��������See AlsoG�-i�-/ .�0�����2������CStatic::CStatic �\"�-��-1%�����������-/�-�.class CWinAppEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')")9i�-/�-(  �"�������class CWinApp8��-g�-) "��2�������Descriptionj*/�-��-@ N�U�2���������������Use the CWinApp class to create a Windows application object. An application object provides member functions for initializing the application (and each instance of it) and for running the application. Each application that uses the Foundation classes can only contain one CWinApp object. This object is constructed when other C++ global og�-��-i�-bjects are constructed and is already available when Windows calls the WinMain function, which is supplied by the Foundation Class Library. Declare your CWinApp object at the global level or statically. �rg�-��-@ N���2�������uq���������Typically, you will derive an application class from CWinApp and override the InitInstance member function to create your application's main window object. The Microsoft Foundation Class Library provides a number of global functions that you can use to access your CWinApp object, as shown by the following list. These functions are available from C or C++. F��-��-2 4�(�R�S��}�S�����FunctionPurpose�&��-a�-f ��M�R�S��}�S�"�Q���������~aZ������e��������y��ۀ�����AfxGetAppObtain a pointer to the CWinApp object. AfxGetInstanceHandleObtain a handle to the current application instance. AfxGetResourceHandleObtain a handle to the application's resources. AfxGetAppNameObtain a pointer to a string containing the application's name. d!��-��-C T�C�R�����������������Note:Most users of the Foundation classes will use the default WinMain provided by the Foundation class library. If you provide your own version of WinMain, you must call AfxWinInit before using a Foundation class to attach your CWinApp object to the Foundation Class Library. ;a�-�-) "�$�2�������Public Members9��-9�-) "� �2�������Data MembersF��-�-� 
�Q�R�݁?~���W�9������E�����������0�w������������*/����������Q�n����������m_pszAppNameSpecifies the name of the application. m_hInstanceCorresponds to the hInstance parameter passed by Windows to WinMain. m_hPrevInstanceCorresponds to the hPrevInstance parameter passed by Windows to WinMain. m_lpCmdLineCorresponds to the lpCmdLine parameter passed by Windows to WinMain. m_nCmdShowCorresponds to the nCmdShow parameter passed by Windows to WinMain. ��9�-Q�-H ^��R�݁?~���	i������uq��������m_pMainWndHolds a pointer to the application's main window. See InitInstance for an example of how to initialize m_pMainWnd. E�-��-) "�8�2�������Construction/Destructionh-Q�-��-; F�Z�R���~��$�b��������CWinAppConstructs a CWinApp object. 7��-5�-) "��2�������Operations
���-B�-l ��C�R��~��H[�:������Ug����������?9�ـ�������c�������LoadCursorLoads a cursor resource, or a resource handle if the resource has been loaded previously. LoadStandardCursorLoads a Windows predefined cursor specified by IDC_ constants from WINDOWS.H. LoadOEMCursorLoads a Windows OEM predefined cursor specified by OCR_ constants from WINDOWS.H. LoadIconLoads an icon resource, or a resource handle if the resource has been loaded previously. �5�-Z�-P n���R��~����zd��������p��������LoadStandardIconLoads a Windows predefined icon specified by IDI_ constants from WINDOWS.H. LoadOEMIconLoads a Windows OEM predefined icon specified by OIC_ constants from WINDOWS.H. 9B�-��-) "� �2�������Overridables�Z�-��-` ��k�R�)��}�)� �/�������uq��������d�������+ꥋ������InitApplicationPerforms any application-level initialization when overridden. (Sometimes override.) InitInstancePerforms Windows instance initialization, such as creating your window objects when overridden. (Always override.) RunRuns the default message loop. Override to customize the message loop. (Seldom override.) OnIdleOverrride to perform application-specific idle-time processing. (Sometimes override.) K���-�.P n���R�)��}�)��I������X�1����������ExitIn��-�.i�-stanceOverride to clean up when your application terminates. (Sometimes override.) PreTranslateMessageFilters messages before they are dispatched to the Windows functions TranslateMessage and DispatchMessage. (Seldom override.) >��-=.) "�*�2�������Protected Members���.�.B R��R�;��~�;���.������d������m_msgCurSpecifies the last window message retrieved by Run; only useful if the message is currently being processed. �b=.�.1{����������.�..CWinApp::ExitInstanceEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")A�.�.(  �2�������CWinApp::ExitInstanceK�.., (�>�r�=���~����virtual int ExitInstance();)�.G.& ��2������4.{.) "��2�������Remarks��G.P.A P�)�2���������d���������Override this function to clean up when your application terminates. ExitInstance is called by the default Run member function. Returns��{..- (�A�2��������The application's exit code, where 0 indicates no errors and values greater than 0 indicate an error. This value is used as the return value from WinMain. �eP.�.1C����������.�.

.CWinApp::InitApplicationEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")E.�.) "�8�2�������CWinApp::InitApplicationO#�.G., (�F�r�=���~����virtual BOOL InitApplication();)�.p.& ��2������4G.�.) "��2�������RemarksDp.�.3 4�#�2����������Windows allows several copies of the same program to be running at the same time. Thus, application initialization is conceptually divided into two sections: one-time application initialization that is done the first time the program runs and instance initialization that runs each time a copy of the program runs, including the first time. This function is called by the Foundation library version of WinMain. Override InitApplication if your application needs one-time initialization such as Windows class registration. 4�.	.) "��2�������Returnsl=�.�	./ .�z�2���������TRUE if initialization is successful; otherwise FALSE. 5	.�	.) "��2�������See AlsoM�	.

.0 0�:�2����uq�������CWinApp::InitInstance �b�	.�
.1�����������
.�
.�@.CWinApp::InitInstanceEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")B

.�
.) "�2�2�������CWinApp::InitInstanceL �
.+., (�@�r�=���~����virtual BOOL InitInstance();)�
.T.& ��2������4+.�.) "��2�������Remarks��T.j.? L�G�2��������������Windows allows several copies of the same program to be running at the same time. Thus, application initialization is conceptually divided into two sections: one-time application initialization that is done the first time the program runs and instance initialization that runs each time a copy of the program runs, including the first time. This function is called by the Foundation library implementation of WinMain. Override InitInstance to provide initialization for each new instance of your application running under Windows. Typically, you override InitInstance to construct your main window object and set m_pMainWnd to point to that window, as shown here. (�.�.% ��0�������j.Y.- (�5�0���	���������BOOL CDerivedApp::InitInstance(){m_pMainWnd = new CDerivedWindow();m_pMainWnd->ShowWindow( m_nCmdShow );m_pMainWnd->UpdateWindow();return TRUE;}3�.�.(  ��������Returnsk=Y.@.. ,�z���������TRUE if initialization is successful; otherwise FALSE. �.@.

.4�.@@.(  ��������See AlsoO @.�@./ .�@���� �/�������CWinApp::InitApplication �`@@. A.1G��������� A._A.uF.CWinApp::LoadCursorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")?�@._A.(  �.�������CWinApp::LoadCursor�\ A.�A.? N���r�=���~�����������HCURSOR LoadCursor( LPCSTR lpszCursorName );HCURSOR LoadCursor( UINT nIDCursor );)_A.#B.& ��2������K�A.nB.2 4�2�R����~Q�������ParameterDescription�#B.oC.D V�{�R����~���������������lpszCursorNamePoints to a null-terminated string that contains the name of the cursor resource. You can use a CString in place of an LPSTR. nIDCursorID number of the resource. 4nB.�C.) "��2�������Remarks�DoC.@E.Y ����2������������Ug������?9�ـ�������Loads the cursor resource named by lpszCursorName or specified by nIDCursor from the current executable file. LoadCursor loads the cursor into memory only if it has not been previously loaded. Use the LoadStandardCursor or LoadOEMCursor member functions to access the predefined Windows cursors. ReturnsoC�C.�E., (���2��������A handle to a cursor resource. If unsuccessful, returns NULL. 5@E.�E.) "��2�������See Also�O�E.uF.B T���2����Ug������?9�ـ�������CWinApp::LoadStandardCursor, CWinApp::LoadOEMCursor, ::LoadCursor �^�E.G.1���������G.BG.L.CWinApp::LoadIconEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")>uF.BG.) "�*�2�������CWinApp::LoadIcon�PG.�G.? N���r�=���~�����������HICON LoadIcon( LPCSTR lpszIconName );HICON LoadIcon( UINT nIDIcon );)BG.�G.& ��2������K�G.EH.2 4�2�R�}��~Q�}�����ParameterDescription���G.:I.> J�o�R�}��~�}�����������lpszIconNamePoints to a null-terminated string that contains the name of the icon resource. You can also use a CString for this argument. nIDIconID number of the resource. 4EH.nI.) "��2�������Remarks�(:I.�J.Y ��Q�2��������������zd����p��������Loads the icon resource named by lpszIconName or specified by nIDIcon from the executable file. LoadIcon loads the icon only if it has not been previously loaded. You can use the LoadStandardIcon or LoadOEMIcon member functions to access the predefined Windows icons. ReturnsnBnI.]K., (���2��������A handle to an icon resource. If unsuccessful, returns NULL. 5�J.�K.) "��2�������See Also�I]K.L.B T���2������zd����p��������CWinApp::LoadStandardIcon, CWinApp::LoadOEMIcon, ::LoadIcon �c�K.�L.1�����������L.�L.Q�.CWinApp::LoadOEMCursorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")CL.�L.) "�4�2�������CWinApp::LoadOEMCursor`.�L.TM.2 4�\�r�=���~������HCURSOR LoadOEMCursor( UINT nIDCursor );)�L.}M.& ��2������KTM.�M.2 4�2�R�=��~Q�=�����ParameterDescription�}M.�N.B R���R�=��~�=�����������nIDCursorAn OCR_ manifest constant identifier that specifies a predefined Windows cursor. You must have #define OEMRESOURCE in your source file to get access to the OCR_ constants in WINDOWS.H. 4�M.O.) "��2�������Remarks��N.�.G \���2����������Ug����������Loads the Windows predefined cursor resource specified by nIDCursor. Use LoadOEMCursor or the LoadStandardCursor member function to access the predefined Windows cuO.�.L.rsors. ReturnsoCO.��., (���2��������A handle to a cursor resource. If unsuccessful, returns NULL. 5�.À.) "��2�������See Also�L��.Q�.B T���2����H[�:����Ug����������CWinApp::LoadCursor, CWinApp::LoadStandardCursor, ::LoadCursor �aÀ.�.1g����������.$�.Z�.CWinApp::LoadOEMIconEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")AQ�.$�.) "�0�2�������CWinApp::LoadOEMIconZ(�.~�.2 4�P�r�=���~������HICON LoadOEMIcon( UINT nIDIcon );)$�.��.& ��2������K~�.�.2 4�2�R�=��~Q�=�����ParameterDescription���.��.B R���R�=��~�=�����������nIDIconAn OIC_ manifest constant identifier that specifies a predefined Windows icon. You must have #define OEMRESOURCE in your source file to get access to the OIC_ constants in WINDOWS.H. 4�.1�.) "��2�������Remarks����./�.G \�o�2������������zd��������Loads the Windows predefined icon resource specified by nIDIcon. Use LoadOEMIcon or the LoadStandardIcon member function to access the predefined Windows icons. ReturnsnB1�.��., (���2��������A handle to an icon resource. If unsuccessful, returns NULL. 5/�.҅.) "��2�������See Also�F��.Z�.B T���2������zd����c���������CWinApp::LoadStandardIcon, CWinApp::LoadIcon, ::LoadIcon �h҅.�.1�����������.;�.Ɏ.CWinApp::LoadStandardCursorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")HZ�.;�.) "�>�2�������CWinApp::LoadStandardCursorl:�.��.2 4�t�r�=���~������HCURSOR LoadStandardCursor( LPCSTR lpszCursorName ););�.Ї.& ��2������K��.�.2 4�2�R����~Q�������ParameterDescription�Ї.7�.< F���R����~�����������lpszCursorNameAn IDC_ manifest constant identifier that specifies a predefined Windows cursor. These identifiers are defined in WINDOWS.H. The following list shows the possible predefined values for lpszCursorName: C�.z�.2 4�"�R�O�E~Q�O�����ValueMeaningW�7�.ы.p ����R�O�E~�O�������������������������������������IDC_ARROWStandard arrow cursor IDC_IBEAMStandard text-insertion cursor IDC_WAITHourglass cursor used when Windows performs a time-consuming task IDC_CROSSCross-hair cursor for selection IDC_UPARROWArrow pointing straight up IDC_SIZECursor to use when resizing a window IDC_ICONCursor to use when dragging a file IDC_SIZENWSETwo-headed arrow with ends at upper left and lower right IDC_SIZENESWTwo-headed arrow with ends at upper right and lower left �Sz�.[�.7 >���R�O�E~�O���������IDC_SIZEWEHorizontal two-header arrow IDC_SIZENSVertical two-headed arrow 4ы.��.) "��2�������Remarks
�[�.��.G \���2����������?9�ـ�������Loads the Windows predefined cursor resource specified by lpszCursorName. Use LoadStandardCursor or the LoadOEMCursor member function to access the predefined Windows cursors. ReturnsoC��.�., (���2��������A handle to a cursor resource. If unsuccessful, returns NULL. 5��.@�.) "��2�������See Also�G�.Ɏ.B T���2����?9�ـ���H[�:��������CWinApp::LoadOEMCursor, CWinApp::LoadCursor, ::LoadCursor �f@�.`�.1R���������`�.��.��.CWinApp::LoadStandardIconEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")FɎ.��.) "�:�2�������CWinApp::LoadStandardIconf4`�.�.2 4�h�r�=���~������HICON LoadStandardIcon( LPCSTR lpszIco��.�.Ɏ.nName );)��.A�.& ��2������K�.��.2 4�2�R�}��~Q�}�����ParameterDescription�A�.��.6 :���R�}��~�}�������lpszIconNameA manifest constant identifier that specifies a predefined Windows icon. These identifiers are defined in WINDOWS.H. The following list shows the possible predefined values for lpszIconName: C��.��.2 4�"�R����}Q�������ValueMeaningz*��.Q�.P n�U�R����}�����������������������IDI_APPLICATIONDefault application icon IDI_HANDHand-shaped icon used in serious warning messages IDI_QUESTIONQuestion mark shape used in prompting messages IDI_EXCLAMATIONExclamation point shape used in warning messages IDI_ASTERISKAsterisk shape used in informative messages 4��.��.) "��2�������Remarks�Q�.��.G \���2����������p��������Loads the Windows predefined icon resource specified by lpszIconName. Use LoadStandardIcon or the LoadOEMIcon member function to access the predefined icons used by Windows. Returns�_��.�., (���2��������A handle to an icon resource (a bitmap defining the icon). If unsuccessful, returns NULL. 5��.P�.) "��2�������See Also�A�.��.B T���2����p����c���������CWinApp::LoadOEMIcon, CWinApp::LoadIcon, ::LoadIcon �\P�.`�.1L���������`�.��.��.CWinApp::OnIdleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")<��.��.) "�&�2�������CWinApp::OnIdlec+`�.��.8 @�V�r�=���~��������virtual BOOL OnIdle( LONG lCount );)��.(�.& ��2������K��.s�.2 4�2�R�=��~Q�=�����ParameterDescriptionF
(�.��.< F��R�=��~�=���������lCountA counter incremented each time GetMessage finds the message queue empty. This count is reset to 0 each time a new message is processed. lCount can be used to determine relatively how long the application has been idling without processing a message. 4s�.��.) "��2�������RemarksC	��.0�.: B��2�������������Override this member function to perform idle-time processing. OnIdle is called when the application's message queue is empty. Use your override to call your own idle-handler members for such tasks as background recalculation in a spreadsheet, background repagination in a word processor, file backup, and the like. The lCount parameter is incremented each time GetMessage finds the queue empty and reset to 0 each time a new message is processed. You can call your different idle routines based on this count. �{��.��.2 4���2����������Do not perform lengthy tasks during OnIdle because your application cannot process user input until OnIdle returns. "�0�.��.> J���r����������������Note:The default implementation of OnIdle performs internal data structure cleanup. Therefore, if you override OnIdle, you must explicitly call CWinApp::OnIdle in your overridden version to get the default processing. 3��.2�.(  ��������Returns�W��.��.. ,�����������TRUE to receive more idle processing time; FALSE if no more idle time is needed. �i2�.Q�.1K���������Q�.��.�/CWinApp::PreTranslateMessageEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")H ��.��.(  �@�������CWinApp::PreTranslateMessagef4Q�.��.2 4�h�r�=���~������virtual BOOL PreTranslateMessage( MSG* pMsg );)��.(�.& ��2������K��.s�.2 4�2�R�=��~Q�=�����ParameterDescription�K(�./5 :���R�=��~�=�������pMsgA pointer to a MSG structure containing the message to process. s�./��.4s�.@/) "��2�������Remarksc/�/F Z�;�2���������H��Հ�������Override this function to filter window messages before they are dispatched to the Windows functions TranslateMessage and DispatchMessage. The default implementation performs access-key translation, so you must call PreTranslateMessage in your overridden version. Returns)�@/�/H ^���2������H��Հ����������TRUE if the message was fully processed in PreTranslateMessage and should not be passed to the Windows functions TranslateMessage and DispatchMessage. FALSE if the message should be processed in the normal way. �Y�/V/1����������V/�/C/CWinApp::RunEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")9�/�/) "� �2�������CWinApp::RunBV/�/, (�,�r�=���~����virtual int Run();)�/�/& ��2������4�/./) "��2�������Remarks%��/S/] ����2�����������+ꥋ����X�1���������Provides a default message loop. Run acquires and dispatches Windows messages until a WM_QUIT message is received. If the application's message queue currently contains no messages, Run calls OnIdle to perform idle-time processing. Incoming messages are passed to PreTranslateMessage for special processing, then passed to the Windows function TranslateMessage for standard keyboard translation, and finally DispatchMessage is called. �]./�/0 0���2����������Run is rarely overridden, but you can override it to provide special behavior. Returnsc1S/C/2 4�b�2����������An int value that is returned by WinMain. �]�/�/1G����������//$/CWinApp::CWinAppEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")=C//) "�(�2�������CWinApp::CWinAppa/�/o/2 4�^�r�=���~������CWinApp( const char* pszAppName = NULL );)/�/& ��2������Ko/�/2 4�2�R�m��~Q�m�����ParameterDescription��/�	/< F���R�m��~�m���������pszAppNameA null-terminated string containing the Windows application name for your application. If this argument is not supplied or is NULL, CWinApp uses the filename of the executable file by default. 4�/'
/) "��2�������Remarks���	/$/E X�q�2����������������Constructs a CWinApp object and passes pszAppName to be stored as the application name. This constructor is invoked by your global application object definition. You can have only one CWinApp object in your application. The constructor stores a pointer to the CWinApp object in a Microsoft Foundation-defined global variable. This is so the WinMain can call the object's member functions to initialize and run the application. �a'
/�/1�����������/�/V/CWinApp::m_hInstanceEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")A$/�/) "�0�2�������CWinApp::m_hInstance4�/+
/) "��2�������Remarks+��/V/E X���2������������~aZ�����Corresponds to the hInstance parameter passed by Windows to WinMain. The m_hInstance data member is a handle to the current instance of the application running under Windows. This is returned by AfxGetInstanceHandle. �e+
/�/1�����������/1/y@/CWinApp::m_hPrevInstanceEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")EV/1/) "�8�2�������CWinApp::m_hPrevInstance4�/e/) "��2�������Remarks�1/y@/? L���2��������������Corresponds to the hPrevInstance parameter passed by Windows to WinMain. The m_hPrevIne/y@/V/stance data member has the value NULL if this is the first instance of the application that is running. �ae/A/1K���������A/LA/fB/CWinApp::m_lpCmdLineEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")Ay@/LA/) "�0�2�������CWinApp::m_lpCmdLine4A/�A/) "��2�������Remarks��LA/fB/9 @�[�2������������Corresponds to the lpCmdLine parameter passed by Windows to WinMain. Use m_lpCmdLine to access any command-line arguments entered when the application was started. �^�A/�B/1����������B/3C/D/CWinApp::m_msgCurEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")>fB/3C/) "�*�2�������CWinApp::m_msgCur4�B/gC/) "��2�������Remarks�y3C/D/2 4���2������d������Corresponds to the last window message retrieved by Run; only useful if the message is currently being processed. �`gC/�D/1�����������D/�D/�F/CWinApp::m_nCmdShowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")@D/�D/) "�.�2�������CWinApp::m_nCmdShow4�D/E/) "��2�������Remarkss�D/�F/] ��-�2��������������
�E�������
�E�����Corresponds to the nCmdShow parameter passed by Windows to WinMain. If m_nCmdShow is TRUE, the first call to CWnd::ShowWindow makes the main window visible. You can pass m_nCmdShow as an argument when you call ShowWindow for your application's main window. �`E/G/1���������G/[G/.I/CWinApp::m_pMainWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")@�F/[G/) "�.�2�������CWinApp::m_pMainWnd4G/�G/) "��2�������Remarks�f[G/.I/9 @���2������������Use this data member to store a pointer to your application's main window object. The Foundation class library will automatically terminate your application when the window referred to by m_pMainWnd is closed. If you don't store a valid CWnd pointer here, you must explicitly call the Windows function PostQuitMessage to terminate your application. �b�G/�I/18����������I/J/
K/CWinapp::m_pszAppNameEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWinApp')")B.I/J/) "�2�2�������CWinapp::m_pszAppName4�I/7J/) "��2�������Remarks��J/
K/4 6�?�2������y��ۀ����Specifies the name of the application (optionally provided to the constructor or extracted from .EXE name if not provided). Returned by AfxGetAppName. �^7J/�K/1�����������K/�K/�O/class CWindowDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_003')")<
K/�K/) "�&�2�������class CWindowDC8�K/
L/) "��2�������Descriptionw�K/�M/^ ��3�2������㪌����������+��������The CWindowDC class is derived from CDC. It calls the Windows functions GetWindowDC at construction time and ReleaseDC at destruction time. This means that a CWindowDC object accesses the entire screen area of a CWnd--both client and nonclient areas. See Also;
L/�M/0 0��2���㪌������CDC ]-�M/N/0 0�Z�2����������Public MembersConstruction/Destruction�b�M/�N/O n���R�[��~�[�{in���������חV��������CWindowDCConstructs a CWindowDC object. ~CWindowDCDestroys the CWindowDC object. >N/O/) "�*�2�������Protected Members�?�N/�O/A R�~�R�����[�����������m_hWndThe HWND to which this CWindowDC is attached. �cO/+�/1����������+�/k�/�/CWindowDC::CWindowDCEnableButton("up");ChangeButtonBinding("up", "J�O/+�/�O/I(`mfc10wh.hlp', `CWindowDC')")@�O/k�/(  �0�������CWindowDC::CWindowDCv=+�/�/9 B�z�r�=���~���������CWindowDC( CWnd* pWnd );throw( CResourceException );)k�/
�/& ��2������K�/U�/2 4�2�R�=��~Q�=�����ParameterDescription|M
�/с// .���R�=��~�=�����pWndThe window whose client area the device context object will access. 4U�/�/) "��2�������RemarksH�с/M�/R r���2����������������(Uc�����Constructs a CWindowDC object that accesses the entire screen area (both client and nonclient) of the CWnd object pointed to by pWnd. The constructor calls the Windows function GetDC. An exception (of type CResourceException) is thrown if the Windows GetDC call fails. A device context may not be available if Windows has already allocated all of its available device contexts. Your application competes for the five common display contexts available at any given time under Windows. 5�/��/) "��2�������See Alsol$M�/�/H `�H�2���㪌����=�D�����+������CDC, CClientDC, CWnd �d��/��/1������������/Ņ/��/CWindowDC::~CWindowDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWindowDC')")B�/Ņ/) "�2�2�������CWindowDC::~CWindowDCE��/
�/, (�2�r�=���~����virtual ~CWindowDC();)Ņ/3�/& ��2������4
�/g�/) "��2�������Remarks�Z3�/�/? N���2��������M$��������Destroys a CWindowDC object and calls the Windows ReleaseDC function. See Also�3g�/��/N l�f�2���㪌����=�D�����+��������CDC, CClientDC, CWnd, ::ReleaseDC �`�/�/1�����������/P�/
�/CWindowDC::m_hWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWindowDC')")>��/P�/) "�*�2�������CWindowDC::m_hWnd4�/��/) "��2�������Remarks�NP�/
�/8 @���2������������The HWND of the CWnd pointer used to construct the CWindowDC object. �`��/��/1�	�����������/ى/T�/class CMetaFileDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_003')")>
�/ى/) "�*�2�������class CMetaFileDC8��/�/) "��2�������Description�^ى/�/x ����2�����������������������㪌����N�x������s������A Windows metafile contains a sequence of GDI commands that can be replayed to create a desired image or text. To implement a Windows metafile, first create a CMetaFileDC object. You create a CMetaFileDC in two steps. First, invoke the CMetaFileDC constructor, then call the Create member function, which creates a Windows metafile device context and attaches it to the CMetaFileDC object. After the CMetaFileDC object is created, send a sequence of CDC GDI commands to the metafile device context. Use only those GDI commands that create output, such as MoveTo and LineTo. M��/4�/Y ����2�����	���������3�ـ���������Then call the Close member function, which closes the metafile device context and returns a metafile handle. Use the CMetaFileDC destructor to destroy the CMetaFileDC object. CDC::PlayMetaFile can then use the metafile handle to play the metafile repeatedly, and the metafile can also be manipulated by Windows functions such as CopyMetaFile, which copies a metafile to disk. When the metafile is no longer needed, delete it from memory with the DeleteMetaFile Windows function. 5�/i�/) "��2�������See Also;4�/��/0 0��2���㪌������CDC ]-i�/
�/0 0�Z�2����������Public MembersConstruction/Destruction��/
�/
�/p5��/}�/; F�j�R�g��~�g��*k��������CMetaFileDCConstructs a CMetaFileDC object. ;
�/��/) "�$�2�������Initialization�f}�/X�/: D���R��1�������������CreateCreates the Windows metafile device context and attaches it to the CMetaFileDC object. 7��/��/) "��2�������Operations�sX�/T�/R r���R��3~�����Հ������[������.��V������CloseCloses the device context, and creates a metafile handle. SelectObjectSelects a GDI drawing object into the specified device context, which replaces the previous object of the same type. SelectStockObjectRetrieves one of the predefined stock pens, brushes, or fonts and causes the stock object to become the currently selected object of its type. �c��/��/1�����������/&�/��/CMetaFileDC::CloseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMetaFileDC')")>T�/&�/(  �,�������CMetaFileDC::CloseB��/h�/, (�,�r�=���~����HMETAFILE Close();)&�/��/& ��2������4h�/��/) "��2�������Remarks����/��/F Z��2�����3�ـ�����������Closes the metafile device context and creates a Windows metafile handle that can be used to play the metafile by using the CDC::PlayMetaFile member function. The Windows metafile handle can also be used to manipulate the metafile with Windows functions such as CopyMetaFile. The metafile should be deleted after use by calling the Windows DeleteMetaFile function. Returns�X��/�/, (���2��������A valid handle to a metafile if the function is successful. Otherwise, it is NULL. 5��/F�/) "��2�������See Also�g�/��/H `���2����3�ـ�������������CDC::PlayMetaFile, ::CloseMetaFile, ::GetMetaFileBits, ::CopyMetaFile, ::DeleteMetaFile �iF�/��/1?�����������/��/��/CMetaFileDC::CMetaFileDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMetaFileDC')")E��/��/) "�8�2�������CMetaFileDC::CMetaFileDC>��/�/, (�$�r�=���~����CMetaFileDC();)��/;�/& ��2������4�/o�/) "��2�������Remarks(�;�/��/L f���2���������\僭����������Construction of a CMetaFileDC object is a two-step process. First, call CMetaFileDC, then call Create, which creates the Windows metafile device context and attaches it to the CMetaFileDC object. See AlsoKo�/��/0 0�6�2������������CMetaFileDC::Create �d��/w�/1V���������w�/��/0CMetaFileDC::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMetaFileDC')")@��/��/) "�.�2�������CMetaFileDC::Createa/w�/�/2 4�^�r�=���~������BOOL Create(LPCSTR lpszFilename = NULL );)��/A�/& ��2������K�/��/2 4�2�R�U��~Q�U�����ParameterDescription��A�/s�/< F�W�R�U��~�U���������lpszFilenamePoints to a null-terminated character string. Names an existing metafile on disk to load. If lpFilename is NULL, a new in-memory metafile is created. 4��/��/) "��2�������Remarks,�s�/��/L f���2���������\僭����������You construct a CMetaFileDC object in two steps. First, call the constructor CMetaFileDC, then call Create, which creates the Windows metafile device context and attaches it to the CMetaFileDC object. Returnsj;��/=�// .�v�2���������TRUE if the function is successful; otherwise FALSE. 5��/r�/) "��2�������See Alsoj4=�/06 <�h�2�����*k��������CMetaFileDC::CMetaFileDC, ::CreateMetaFile r�/0��/�jr�/�01�����������0�0{0CMetaFileDC::SelectObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMetaFileDC')")F0�0) "�:�2�������CMetaFileDC::SelectObjecta/�0N02 4�^�r�=���~������BOOL SelectObject( CGdiObject* pObject );)�0w0& ��2������KN0�02 4�2�R�=��~Q�=�����ParameterDescription�zw0q05 :���R�=��~�=�������pObjectIdentifies the object to be selected into the CMetaFileDC. The selected object can be one of the following: �=�0�0Q r�z�pm��R���������������������CBitmap CBrush CFont CPen CRgn CPalette 4q030) "��2�������Remarks���0,0; D�}�2��������������Selects an object into the CMetaFileDC. CMetaFileDC performs its own object cleanup, so an application does not have to reselect default objects when recording a metafile. Returnsj;30�0/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5,0�0) "��2�������See Also�b�0{0N l���2������y�����KXx�����ذ:��������CGdiObject::DeleteObject, CDC::SelectClipRgn, CDC::SelectPalette, ::SelectObject �o�001m���������0f0�	0CMetaFileDC::SelectStockObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMetaFileDC')")K"{0f0) "�D�2�������CMetaFileDC::SelectStockObject]+0�02 4�V�r�=���~������BOOL SelectStockObject( int nIndex );)f0�0& ��2������K�0702 4�2�R�=��~Q�=�����ParameterDescription�{�0�0; F���R�=��~�=�����`.�����nIndexSpecifies the type of stock object desired. See CDC::SelectObject for a list of the possible stock objects. 470!0) "��2�������Remarks�a�0�03 6���2�����������Selects one of the predefined stock pens, brushes, or fonts into the CMetaFileDC. Returnsj;!0	0/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5�0T	0) "��2�������See AlsoN	0�	00 0�<�2����_�;������CDC::SelectStockObject �YT	0,
01����������,
0c
0�L0class CWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_002')")7�	0c
0) "��2�������class CWnd8,
0�
0) "��2�������Description�ic
0h
0d ����2����������������������I`t�������The CWnd class provides the base functionality of all window classes in the Microsoft Foundation Class Library. A CWnd object is actually distinct from a Windows window, but the two are tightly linked. A CWnd object is created or destroyed by the CWnd constructor and destructor. The Windows window, on the other hand, is a data structure internal to Windows that is created by the CreateEx member function and destroyed by the CWnd virtual destructor. The DestroyWindow function, one of the few public virtual CWnd member functions, destroys the Windows window without destroying the object. 0��
0�@0Y ����2������������������������The CWnd class and the message-map mechanism hide the WndProc function. Incoming Windows notification messages are automatically routed through the message map to the proper OnMessage CWnd member functions. You override the OnMessage member function to handle that member's particular message in your derived classes. The CWnd class also provides the functionality of a Windows child window. To create a useful child window for your application, derive a class from CWnd. Add member variables to the derived class to store data specific to your applicationh
0�@0�	0. Implement message-handler member functions and a message map in the derived class to specify what happens when messages are directed to the window. ��h
0�C0q ���2�����������Ԏ�������\僭�������I`t���������You create a child window in two steps. First, call the constructor CWnd to construct the CWnd object, then call the Create member function to create the child window and attach it to the CWnd object. Construction can be a one-step process in a derived class. Write a constructor for the derived class and call Create from  within the constructor. When the user terminates your child window, destroy the CWnd object, or call the DestroyWindow member function to remove the window and destroy its data  structures. If you allocate any memory in the CWnd object, override the CWnd destructor to dispose of the allocations. 
��@0�E0X ~�k�2�����������������������Within the Microsoft Foundation Class Library, further classes are derived from CWnd to provide specific window types. Three of these classes, CFrameWnd, CMDIFrameWnd, and CMDIChildWnd, contain further window functionality and are designed for further derivation. The control classes derived from CWnd, such as CDialog and CButton, can be used directly, or can also be used for further derivation of classes. See AlsoO��C0�F0�  �M�2������K�������f����M3�0���㉄N������9�����"������Є'�����3Iـ���{Yh����;c-ڀ����^I�������CDialog, CModalDialog, CStatic, CButton, CEdit, CListBox, CComboBox, CScrollBar, CFrameWnd, CMDIFrameWnd, CMDIChildWnd ;�E06G0) "�$�2�������Public Members
W�F0@I0� 4���pȘR������㎶�������嘛�����8q0K������oO������oi�������.=�������
�K������K������P��������-�����To view CWnd members, select one of the following categories: Data Members Construction/Destruction Initialization Window State Functions Window Size and Position Window Access Functions Update/Painting Functions Coordinate Mapping Functions Window Text Functions Scrolling Functions 3d6G0sK0� l���pȘR�!��D���������€������QC�����i]�������o�����2�1�����Ag|����� �	������\�_�����m@������㨳�x�����(I	������񩬀����Caret Functions Child Window Attributes Dialog-Box Item Functions Menu Functions Timer Functions Alert Functions Message Functions Clipboard Functions Initialization Message Handlers System Message Handlers General Message Handlers Input Message Handlers Nonclient-Area Message Handlers �u@I0?L0W ~���pȘR���ҵ������.��������x�b������#��!�����MDI Message Handlers Control Message Handlers Clipboard Message Handlers Windows 3.1 Functions >sK0}L0) "�*�2�������Protected Membersg'?L0�L0@ P�N�pȘR���o��f�����D�_�����Initialization Operations �[}L0pM01<���������pM0�M0�O0CWnd Data MembersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=�L0�M0(  �*�������CWnd Data Members}pM0�O0� ���R�=��~�=�Sj1����������C=�������\I��������8���������\I��������m_hWndIndicates the HWND attached to this CWnd. wndTopIndicates a static CWnd to use with the SetWindowPos member function to indicate that CWnd should be moved to the top of the window list. wndBottomIndicates a static CWnd to use with the SetWindowPos member function to indicate that CWnd should be moved to the bottom of the window list. �g�M0\�015���������\�0��0��0CWnd Construction/Destr�O0\�0�O0uctionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")I!�O0��0(  �B�������CWnd Construction/Destruction�\�0��0^ ��M�R����~�����C�������㊁+��������I`t������CWndConstructs a CWnd object. ~CWndDestroys a CWnd object and destroys the attached window. DestroyWindowDestroys the attached Windows window. �]��07�01����������7�0v�0+�0CWnd InitializationEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?��0v�0(  �.�������CWnd Initializationc�7�0ل0� ��R���m~�����Ԏ�����������+������!�}��������q$���������Z�?������������CreateCreates and initializes the child window associated with the CWnd object. GetStyleReturns the current window style. AttachAttaches a Windows handle to a CWnd object. DetachDetaches a Windows handle from a CWnd object and returns the handle. FromHandleReturns a pointer to a CWnd object when given a handle to a window. If a CWnd object is not attached to the handle, a temporary CWnd object is created and attached. R�v�0+�0t ����R���m~����:����������S�4����㞫Q��������������DeleteTempMapCalled automatically by the CWinApp idle-time handler and deletes any temporary CWnd objects created by FromHandle. GetSafeHwndReturns m_hWnd, or NULL if the this pointer is NULL. �`ل0��01������������0��0M�0CWnd Message FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B+�0��0(  �4�������CWnd Message FunctionsO���0M�0P n���R����~����'-��������MT�<��������SendMessageSends a message to the CWnd object and does not return until it has processed the message. PostMessagePlaces a message in the CWnd object's application queue, then returns without waiting for the object to process the message. �d��0�01
����������0(�0�0CWnd Window Text FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")FM�0(�0(  �<�������CWnd Window Text Functions�Y�0�0� ΀��R���}���lW�������㵠H���������|5,��������ӵu�������r������SetWindowTextSets the CWnd text or caption title (if one exists) to the specified text. GetWindowTextCopies the CWnd text or caption title (if it has one) into a buffer. GetWindowTextLengthReturns the length of the CWnd text or caption title. SetFontSets the current font. GetFontRetrieves the current font. �](�0��01������������0΋0��0CWnd Menu FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?�0΋0(  �.�������CWnd Menu Functions�M��0��0n ����R���w~����r�������}�������7@������n�_���������������GetMenuRetrieves a pointer to the menu. SetMenuSets the menu to the specified menu. DrawMenuBarRedraws the menu bar. GetSystemMenuAllows the application to access the Control menu for copying and modification. HiliteMenuItemHighlights or removes the highlighting from a top-level (menu-bar) menu item. �f΋0 �01���������� �0h�0�0CWnd Child Window AttributesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")H ��0h�0(  �@�������CWnd Child Window Attributes�` �0�0; F���R�m��~�m㵸.h��������GetDlgCtrlIDIf the CWnd is a child window, calling this function returns its ID value. �gh�0��01�����������0�0��0CWnd Window Size and PositionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")I!�0�0(  �B�������CWnd Window Size and Position��0�0�0���0'�0� ��R�Q��}�Q㪓k��������]�$���������|6����������\�����������-����������\I�������CloseWindowMinimizes CWnd. OpenIconActivates and restores a minimized (iconic) CWnd. IsIconicDetermines whether CWnd is minimized (iconic). IsZoomedDetermines whether CWnd is maximized. MoveWindowChanges the position and/or dimensions of CWnd. SetWindowPosChanges the size, position, and ordering of child, pop-up, and top-level windows. ��0��0r ��9�R�Q��}�Q�2"b��������a��������0F����������yڀ�������ArrangeIconicWindowsArranges all the minimized (iconic) child windows. BringWindowToTopBrings CWnd to the top of a stack of overlapping windows. GetWindowRectGets the screen coordinates of CWnd. GetClientRectGets the dimensions of the CWnd client area. �k'�0Q�01|���������Q�0��0��0CWnd Coordinate Mapping FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")M%��0��0(  �J�������CWnd Coordinate Mapping FunctionsK�Q�0��0\ ����R���u~����Vu����������t��F����������ClientToScreenConverts the client coordinates of a given point or rect on the display to screen coordinates. ScreenToClientConverts the screen coordinates of a given point or rect on the display to client coordinates. �h��0��01������������0��0H�0CWnd Update/Painting FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")J"��0��0(  �D�������CWnd Update/Painting FunctionsB���0�0� ΀��R��~��-{��������;��������m�vJ������(Uc�������;�������M$������BeginPaintPrepares CWnd for painting and fills a PAINTSTRUCT data structure with information about the painting. EndPaintMarks the end of painting. GetDCRetrieves a display context for the client area. GetWindowDCRetrieves the display context for the whole window, including the caption bar, menus, and scroll bars. ReleaseDCReleases common and window device contexts, freeing them for use by other applications. v���0��0� ���R��~���y�������u>��������㵐���������㔘Jb���������|�$������)�B�������UpdateWindowUpdates the client area. SetRedrawAllows changes in CWnd to be redrawn or prevents changes from being redrawn. GetUpdateRectRetrieves the coordinates of the smallest rectangle that completely encloses the CWnd update region. GetUpdateRgnRetrieves the CWnd update region. InvalidateInvalidates the entire client area. InvalidateRectInvalidates the client area within the given rectangle by adding that rectangle to the update region. ;��0��0t ����R��~�����������X[�:�������C��������
�E���������W��������InvalidateRgnInvalidates the client area within the given region by adding it to the current update region. ValidateRectValidates the client area within the given rectangle by removing the rectangle from the update region. ValidateRgnValidates the client area within the given region by removing the region from the current update region. ShowWindowShows or hides CWnd. IsWindowVisibleDetermines if the window is visible. �T��0H�05 :���R��~����*^������ShowOwnedPopupsShows or hides all pop-up windows associated with the window. �^��0��01������������0�01CWnd Timer FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@H�0�0(  �0�������CWnd Timer Functions�~��01O n���R�#��~�#���������q4������I
�������SetTimerInstalls a system timer that sends a WM_TIMER message when triggered. KillTimerKills a system timer. �01H�0�e�0�11�����������1�1�1CWnd Window State FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")G1�1(  �>�������CWnd Window State Functions
��1�1� ހ�R��~��=��������s(������r�d������~Wȑ������������������(j��������IsWindowEnabledDetermines if the window is enabled for mouse and keyboard input. EnableWindowEnables or disables mouse and keyboard input. GetActiveWindowRetrieves the active window. SetActiveWindowActivates the window. GetCaptureRetrieves the CWnd that has the mouse capture. SetCaptureCauses all subsequent mouse input to be sent to the CWnd. �0�1�1� ΀a�R��~���(��������L;Ŝ�������Kf���������BP���������8|1������GetFocusRetrieves the CWnd that currently has the input focus. SetFocusAssigns the input focus. SetSysModalWindowMakes CWnd a system-modal window. GetSysModalWindowRetrieves the system-modal CWnd if there is one. GetDesktopWindowRetrieves the Windows desktop window. �h�1<11����������<1�1H
1CWnd Dialog-Box Item FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")J"�1�1(  �D�������CWnd Dialog-Box Item Functions�<1�1` ��c�R�W��}�W㳀����������������^�4��������������CheckDlgButtonPlaces a check mark next to or removes a check mark from a button control, or dims the button. CheckRadioButtonChecks the specified radio button and removes the check mark from all other radio buttons in the specified group of buttons. GetCheckedRadioButtonReturns the ID of the currently checked radio button in a group of buttons. DlgDirListFills a list box with a file or directory listing. $��1�	1n ��m�R�W��}�W��=����������������-��������"?:�������E&�Q������DlgDirListComboBoxFills the list box of a combo box with a file or directory listing. DlgDirSelectRetrieves the current selection from a list box. DlgDirSelectComboBoxRetrieves the current selection from the list box of a combo box. GetDlgItemRetrieves the handle of a control contained in the specified dialog box. GetDlgItemIntTranslates the text of a control in the given dialog box to an integer value. C��1�1l ����R�W��}�W㷅���������	Ne���������Ā����6C4�����Ƥ3�������GetDlgItemTextRetrieves the caption or text associated with a control. GetNextDlgGroupItemSearches for the previous (or next) control within a group of controls. GetNextDlgTabItemRetrieves the first control that has the WS_TABSTOP style and precedes (or follows) the specified control. IsDlgButtonCheckedDetermines whether a button control has a check mark next to it, and whether a three-state button control is dimmed, checked, or neither. J��	1H
1R r���R�W��}�W��p�N������k
��������ͼ������SendDlgItemMessageSends a message to the specified control. SetDlgItemIntSets the text of a control to the string that represents an integer value. SetDlgItemTextSets the caption or text of a control in the specified dialog box. �b�1�
11�����������
11�@1CWnd Scrolling FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")DH
11(  �8�������CWnd Scrolling Functions��
1H@1t ��S�R���k~�������������EJq������%����������O`���������al������GetScrollPosRetrieves the current position of a scroll box. GetScrollRangeCopies the current minimum and maximum scroll-bar positions for the given scroll bar. ScrollWindowScrolls CWnd. SetScrollPosSets the current position of a scroll box and, if specified, redraws the scroll bar to reflect the new position. SetScrollRangeSets mini1H@1H
1mum and maximum position values for the given scroll bar. i41�@15 :�h�R���k~���g/�O������ShowScrollBarDisplays or hides a scroll bar. �fH@1HA11s���������HA1�A1�E1CWnd Window Access FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")H �@1�A1(  �@�������CWnd Window Access FunctionsA�HA1�C1t ����R�5��}�5���p]�������I"������{醅������aɓ!��������
�t������ChildWindowFromPointDetermines which, if any, of the child windows contains the specified point. FindWindowReturns the handle of the window, which is identified by its window name and class. GetNextWindowSearches for the next (or previous) window in the window manager's list. GetTopWindowSearches for a top-level child window that belongs to the CWnd. GetWindowSearches for the specified window from the window manager's list. ��A1�E1� ΀�R�5��}�5�0J»���������ڀ�������2g�5����������������D3?�������GetLastActivePopupDetermines which pop-up window owned by CWnd was most recently active. IsChildIndicates whether CWnd is a child window or other direct descendant of the specified window. GetParentRetrieves the parent window of CWnd (if any). SetParentChanges the parent window. WindowFromPointIdentifies the window that contains the given point. �^�C1aF11	���������aF1�F1yG1CWnd Alert FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@�E1�F1(  �0�������CWnd Alert Functions��aF1yG1D V�)�R�g��~�g�b�wB�������Ճ������FlashWindowFlashes the window once. MessageBoxCreates and displays a window that contains an application-supplied message and caption. �b�F1H11����������H1PH1K1CWnd Clipboard FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")DyG1PH1(  �8�������CWnd Clipboard Functions0�H1�J1r ��}�R�C��}�Cぜ�����������3��������6������������b������ChangeClipboardChainRemoves CWnd from the chain of Clipboard viewers. SetClipboardViewerAdds CWnd to the chain of windows that are notified whenever the contents of the Clipboard are changed. OpenClipboardOpens the Clipboard. Other applications will not be able to modify the Clipboard until the CloseClipboard Windows function is called. GetClipboardOwnerRetrieves a pointer to the current owner of the Clipboard. �dPH1K15 :���R�C��}�C�r;Հ�����GetClipboardViewerRetrieves a pointer to the first window in the chain of Clipboard viewers. �^�J1�K11Z����������K1�K1O1CWnd Caret FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@K1�K1(  �0�������CWnd Caret Functions��K1N1n ��W�R�ˁQ~������\������Z�������&Y�ǀ������z׀�������T������CreateCaretCreates a new shape for the system caret and gets ownership of the caret. CreateSolidCaretCreates a solid block for the system caret and gets ownership of the caret. CreateGrayCaretCreates a gray block for the system caret and gets ownership of the caret. GetCaretPosRetrieves the client coordinates of the caret's current position. SetCaretPosMoves the caret to a specified position. ��K1O1D V���R�ˁQ~����΀�����*�h������HideCaretHides the caret by removing it from the display screen. ShowCaretShows the caret on the display at the caret's current position. Once shown, the caret begins flashing automatically. �gN1�O11����������O1�1ߎ1CWnd General Message HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")I!O1�1(  �B�������CWnd General Message Handlers�O1�1O1jE�O1v�1% ��������The following message handlers require an entry in a message map. ��1�1~ ʀ'�R��~��H�������T���������G������������ƀ���������OnCommandCalled when the user selects an item from a menu, when a control calls its parent's message handler, or when an access keystroke is translated. OnActivateCalled when CWnd is being activated or deactivated. OnActivateAppCalled when CWnd is about to be activated and CWnd belongs to a different task than the currently active window. OnCancelModeCalled to allow CWnd to cancel any internal modes, such as mouse capture, if CWnd has the focus when a dialog box or message box is displayed. �v�1�1~ ʀ5�R��~��z?����������;P�����������ؤ"��������9
�g��������OnChildActivateCalled whenever the size or position of CWnd changes if CWnd is a child window. OnCloseCalled as a signal that CWnd or an application will terminate. OnCreateCalled when an application requests that CWnd be created. OnCtlColorCalled when the control or message box is about to be drawn if CWnd is the parent of a system-defined control class or a message box. ��1��1� ހ
�R��~��	�ۀ�������0�U3��������!3������;a+Q������;5�΀�����e��������OnDestroyCalled when CWnd is being destroyed. OnEnableCalled when an application changes the enabled state of CWnd. OnEndSessionCalled when the session is ending. OnEnterIdleCalled to inform an application's main window procedure that a modal dialog box or a menu is entering an idle state. OnEraseBkgndCalled when the background needs erasing. OnGetMinMaxInfoCalled whenever Windows needs to know the maximized position or dimensions, or the minimum or maximum tracking size. ��1��1l ��O�R��~��l�N���������'����������6�I������dvր�����OnIconEraseBkgndCalled when CWnd is being minimized (made iconic) and the background of the icon must be filled before painting the icon. OnKillFocusCalled immediately before CWnd loses the input focus. OnMenuCharCalled when the user presses a menu mnemonic character that doesn't match any of the predefined mnemonics in the current menu. OnMenuSelectCalled when the user selects a menu item. `���1 �1x ����R��~���o4���������C����������Ā��������Y�����������OnMoveCalled after the position of the CWnd has been changed. OnPaintCalled when Windows or an application makes a request to repaint a portion of the window. OnParentNotifyCalled when a CWnd child window is created or destroyed, or when the user clicks a mouse button while the cursor is over the child window. OnQueryDragIconCalled when a minimized (iconic) CWnd is about to be dragged by the user (if CWnd does not have an icon defined for its class). J���1j�1� �}�R��~�㮥%\��������:yR���������eӪ(��������/R5��������b�<��������OnQueryEndSessionCalled when the user chooses to end the Windows session, or when an application calls the ExitWindows Windows function. OnQueryNewPaletteInforms CWnd that it is about to receive the input focus. OnQueryOpenCalled when CWnd is an icon, and the user requests that the icon be opened. OnSetFocusCalled after CWnd gains the input focus. OnShowWindowCalled when CWnd is to be hidden or shown. u: �1ߎ1; F�t�R��~��Œ;���������OnSizeCalled after the size of CWnd has changed. �nj�1~�11�	���������~�1Ώ19�1CWnd Nonclient-Area Message HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")P(ߎ1Ώ1(  �P�������CWnd Nonclient-Area Message HandlersjE~�1D�1% ��������The followinΏ1D�1ߎ1g message handlers require an entry in a message map. y�Ώ1��1� ���R���!~���i|�܀�������6�������@������ؤ"������j��������HY���������(j�����OnNcActivateCalled when the nonclient area needs to be changed to indicate an active or inactive state. OnNcCalcSizeCalled when the size of the client area needs to be calculated. OnNcCreateCalled prior to OnCreate when the nonclient area is being created. OnNcDestroyCalled when the nonclient area is being destroyed. OnNcHitTestCalled by Windows every time the mouse is moved if CWnd contains the cursor, or has captured mouse input with SetCapture. �D�1E�1x ��!�R���!~�����u��������6�3���������:���������%v(��������OnNcLButtonDblClkCalled when the user double-clicks the left mouse button while the cursor is within a nonclient area of CWnd. OnNcLButtonDownCalled when the user presses the left mouse button while the cursor is within a nonclient area of CWnd. OnNcLButtonUpCalled when the user releases the middle mouse button while the cursor is within a nonclient area of CWnd. OnNcMButtonDblClkCalled when the user double-clicks the middle mouse button while the cursor is within a nonclient area of CWnd. ���1��1� ڀ=�R���!~����6�h�������� pA��������k����������3�������z�o���������OnNcMButtonDownCalled when the user presses the middle mouse button while the cursor is within a nonclient area of CWnd. OnNcMButtonUpCalled when the user releases the middle mouse button while the cursor is within a nonclient area of CWnd. OnNcMouseMoveCalled when the cursor is moved within a nonclient area of CWnd. OnNcPaintCalled when the nonclient area needs painting. OnNcRButtonDblClkCalled when the user double-clicks the right mouse button while the cursor is within a nonclient area of CWnd. PE�19�1P n��R���!~�����Q��������8b��������OnNcRButtonDownCalled when the user presses the right mouse button while the cursor is within a nonclient area of CWnd. OnNcRButtonUpCalled when the user releases the right mouse button while the cursor is within a nonclient area of CWnd. �f��1��11������������1�12CWnd System Message HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")H 9�1�1(  �@�������CWnd System Message HandlersjE��1��1% ��������The following message handlers require an entry in a message map. ��1�1z €�R���!~���n�h�������}V؀�����3a}������aaI��������B#/���������OnSysCharCalled when a keystroke translates to a system character. OnSysCommandCalled when the user selects a command from the Control menu, or when the user selects the Maximize or Minimize button. OnSysDeadCharCalled when a keystroke translates to a system dead character (such as accent characters). OnSysKeyDownCalled when the user holds down the ALT key and then presses another key. OnSysKeyUpCalled when the user releases a key that was pressed while the ALT key was held down. v��1z�1n ���R���!~���PU��������~��������h��̀������L�������)�+������OnCompactingCalled when Windows detects that system memory is low. OnDevModeChangeCalled for all top-level windows when the user changes device-mode settings. OnFontChangeCalled when the pool of font resources changes. OnPaletteChangedCalled to allow windows that don't have the input focus and use a color palette to realize their logical palettes and update their client areas. OnSpoolerStatusCalled from Print Manager whenever a job is added to or removed from the Print Manager queue. �.�12R r�]�R���!~���'��!������rv��������[������OnSysColorChangeCalled for all top-level windowz�129�1s when a change is made in the system color setting. OnTimeChangeCalled for all top-level windows after the system time changes. OnWinIniChangeCalled for all top-level windows after the Windows initialization file, WIN.INI, is changed. �ez�1�21P	����������2�22CWnd Input Message HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")G2�2(  �>�������CWnd Input Message HandlersjE�2M2% ��������The following message handlers require an entry in a message map. I��2�2r ����R�сK~���3(�������;Q�=������x|	6��������� *����������OnCharCalled when a keystroke translates to a nonsystem character. OnDeadCharCalled when a keystroke translates to a nonsystem dead character (such as accent characters). OnHScrollCalled when the user clicks the horizontal scroll bar of CWnd. OnKeyDownCalled when a nonsystem key is pressed. A nonsystem key is a keyboard key that is pressed when the ALT key is not pressed, or a keyboard key that is pressed when CWnd has the input focus. �M2�2l ��W�R�сK~���YpZ�����������0|������'
�������8�.s������OnKeyUpCalled when a nonsystem key is released. A nonsystem key is a keyboard key that is pressed when the ALT key is not pressed, or a keyboard key that is pressed when CWnd has the input focus. OnLButtonDblClkCalled when the user double-clicks the left mouse button. OnLButtonDownCalled when the user presses the left mouse button. OnLButtonUpCalled when the user releases the left mouse button. N��2�2| ƀ��R�сK~���΋�.�������g�C������o5Ҁ�����eg��������jڃ������#S��������OnMButtonDblClkCalled when the user double-clicks the middle mouse button. OnMButtonDownCalled when the user presses the middle mouse button. OnMButtonUpCalled when the user releases the middle mouse button. OnMouseActivateCalled when the cursor is in an inactive window and the user presses a mouse button. OnMouseMoveCalled when the mouse cursor moves. OnRButtonDblClkCalled when the user double-clicks the right mouse button. ��22z €�R�сK~���,�������~7V�������{�ۀ�����q4��������������6R�Ѐ�����OnRButtonDownCalled when the user presses the right mouse button. OnRButtonUpCalled when the user releases the right mouse button. OnSetCursorCalled if mouse input is not captured and the mouse causes cursor movement within a window. OnTimerCalled after each interval specified in SetTimer. OnVScrollCalled when the user clicks the window's vertical scroll bar. �n�2�21h����������2�2(
2CWnd Initialization Message HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")P(2�2(  �P�������CWnd Initialization Message HandlersjE�2[2% ��������The following message handlers require an entry in a message map. ���2(
2D V��R�ہA~���H�M6�������WJ�������OnInitMenuCalled when a menu is about to become active. OnInitMenuPopupCalled when a pop-up menu is about to become active. �i[2�
21�����������
2
2D2CWnd Clipboard Message HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")K#(
2
2(  �F�������CWnd Clipboard Message HandlersjE�
2w2% ��������The following message handlers require an entry in a message map. �.
2%A2t ��]�R�C��}�C�qjض�������L€������'���������e:������㢼��������OnAskCbFormatNameCalled by a Clipboard viewer application when a Clipboard owner will display the Clipboard contents. OnChangeCbChainNotifies that a specified window is being removed from the chain. OnDestroyClipboardCalled when the Clipboard is emptied througw2%A2(
2h a call to the EmptyClipboard Windows function. OnDrawClipboardCalled when the contents of the Clipboard change. OnHScrollClipboardCalled when a Clipboard owner will scroll the Clipboard image, invalidate the appropriate section, and update the scroll-bar values. �w26C2` ��c�R�C��}�C��.��������Vd������R_�������P&�������OnPaintClipboardCalled when the client area of the Clipboard viewer needs repainting. OnRenderAllFormatsCalled when the owner application is being destroyed and needs to render all its formats. OnRenderFormatCalled for the Clipboard owner when a particular format with delayed rendering needs to be rendered. OnSizeClipboardCalled when the size of the client area of the Clipboard-viewer window has changed. ��%A2D26 :�1�R�C��}�C�Lq�������OnVScrollClipboardCalled when the owner should scroll the Clipboard image, invalidate the appropriate section, and update the scroll-bar values. �g6C2�D21�����������D2�D2cJ2CWnd Control Message HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")I!D2�D2(  �B�������CWnd Control Message HandlersjE�D2OE2% ��������The following message handlers require an entry in a message map. 6��D2�G2� Ҁi�R�ŁW~���"~9�����pCC����3(������#�sf�����㓓y�����48������v��^�����OnCharToItemCalled by a child list box with the LBS_WANTKEYBOARDINPUT style in response to a WM_CHAR message. OnCompareItemCalled to determine the relative position of a new item in a sorted owner-draw combo or list box. OnDeleteItemCalled when an owner-draw list box or combo box is destroyed or when items are removed from the control by calls to CComboBox::DeleteString or CComboBox::ResetContent. 6�OE2�I2d ����R�ŁW~���x��c�������R}�������������D��������OnDrawItemCalled when a visual aspect of an owner-draw button control, combo box control, list box control, or menu needs to be drawn. OnGetDlgCodeCalled for a control so the control can process ARROW key and TAB key input itself, although Windows normally handles this input. OnMeasureItemCalled for an owner-draw button, combo box, list box, or menu item when the control is created. CWnd informs Windows of the dimensions of the control. �a�G2cJ2G ^���R�ŁW~������������� *�����OnVKeyToItemCalled by a list box owned by CWnd in response to a WM_KEYDOWN message. �c�I2�J21!����������J2<K2,L2CWnd MDI Message HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")EcJ2<K2(  �:�������CWnd MDI Message HandlersjE�J2�K2% ��������The following message handlers require an entry in a message map. �Q<K2,L25 :���R���s~�����i������OnMDIActivateCalled when an MDI child window is activated or deactivated. �d�K2�L21]
����������L2M2�2CWnd Windows 3.1 FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")F,L2M2(  �<�������CWnd Windows 3.1 Functions'��L2.O2` ����R�q��}�q�U�վ������Y}F������67�������r������GetWindowPlacementRetrieves the show state and the normal (restored), minimized, and maximized positions of a window. SetWindowPlacementSets the show state and the normal (restored), minimized, and maximized positions for a window. MapWindowPointsConverts (maps) a set of points from the coordinate space of the CWnd to the coordinate space of another window. GetDCExRetrieves the handle of a device context for the given window. O�M2��2f ����R�q��}�q���G�������3Հ�����,�	��������Q���������LockWindowUpdateDisables or reenables drawing in the given window. A locked window cannot be moved. Onl.O2��2,L2y one window can be locked at a time. RedrawWindowUpdates the specified rectangle or region in the client area. ScrollWindowExScrolls the contents of the client area. This function is similar to the ScrollWindow function, with some additional features. OnPaletteIsChangingInforms other applications when an application is going to realize its logical palette z.O2�2l ���R�q��}�q〸;��������Ke~���������e}������REk������OnWindowPosChangingCalled when the size, position, or z-order is about to change as a result of a call to SetWindowPos or another window-management function. OnWindowPosChangedCalled when the size, position, or z-order has changed as a result of a call to SetWindowPos or another window-management function. EnableScrollBarEnables or disables one or both arrows of a scroll bar. PostNcDestroyThis virtual function is called by the default OnNcDestroy function after the window has been destroyed. ����2�2` ���R�q��}�q㠥熀����㿘�������."���������i@E������GetOpenClipboardWindowReturns the handle of the window that currently has the clipboard open. OnDropFilesCalled the user releases the left mouse button over a window that has registered itself as the recipient of dropped files. GetExStyleReturns the window's extended style. SubclassWindowAttaches a window to a CWnd object and replaces the window's WndProc and AfxWndProc. �g�2��21�����������2ӆ2��2CWnd Protected InitializationEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")I!�2ӆ2(  �B�������CWnd Protected Initialization>��2�2) "�*�2�������Protected Members�iӆ2��2; F���R�!��~�!�����������CreateExCreates a Windows overlapped, pop-up, or child window and attaches it to a CWnd object. �Y�2?�21u���������?�2z�2��2CWnd OperationsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");��2z�2(  �&�������CWnd OperationsP�?�2ʊ2s ����R�E��}�E�2 Љ����������>���������.��[������������GetCurrentMessageReturns a pointer to the message this window is currently processing. Should only be called when in an OnMessage message handler member function. GetSuperWndProcAddrAccesses the original WndProc address of a subclassed window, and is used for translating Windows messages in the main message handler. PreTranslateMessageUsed by CWinApp to filter window messages before they are dispatched to TranslateMessage and DispatchMessage. ��z�2��2X ~�9�R�E��}�E�������������L�������)�'������WindowProcProvides a window procedure for a CWnd. The default dispatches messages through the message map. DefaultCalls the default window procedure, which provides default processing for any window messages that an application does not process. DefWindowProcCalls the default window procedure, which provides default processing for any window messages that an application does not process. �dʊ2S�21����������S�2��2C�2CWnd::ArrangeIconicWindowsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")F��2��2(  �<�������CWnd::ArrangeIconicWindowsL S�2�2, (�@�r�=���~����UINT ArrangeIconicWindows();)��2�2& ��2������4�2B�2) "��2�������Remarks�a�2�2H ^���2������8|1�����D˫��������Arranges all the minimized (iconic) child windows. This member function also arranges icons on the desktop window, which covers the entire screen. The GetDesktopWindow member function retrieves a pointer to the desktop window object. To arrange iconic MDI child windows in an MDI client window, call CMDIFrameWnd::MDIIconArrange. ReturnsB�2�2��2f@B�2r�2& ���2������The height of one row of icons, or 0 if there were no icons. 5�2��2) "��2�������See Also�Zr�2C�2B T���2����8|1����D˫��������CWnd::GetDesktopWindow, CMDIFrameWnd::MDIIconArrange, ::ArrangeIconicWindows �V��2��21�����������2�2��2CWnd::AttachEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")9C�2�2) "� �2�������CWnd::AttachT"��2W�22 4�D�r�=���~������BOOL Attach( HWND hWndNew );)�2��2& ��2������KW�2��22 4�2�R�=��~Q�=�����ParameterDescriptionc4��2.�2/ .�h�R�=��~�=�����hWndNewSpecifies a handle to a Windows window. 4��2b�2) "��2�������Remarksn;.�2��23 6�v�2�����������Attaches a Windows window to a CWnd object. Returnsl=b�2<�2/ .�z�2���������TRUE if the operation was successful; otherwise FALSE. 5��2q�2) "��2�������See Also7<�2��2H `�n�2����q$����㊁+����Sj1������CWnd::Detach, CWnd::~CWnd, CWnd::m_hWnd �Zq�2{�21"���������{�2��2��2CWnd::BeginPaintEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=��2��2) "�(�2�������CWnd::BeginPainta/{�2�22 4�^�r�=���~������CDC* BeginPaint( LPPAINTSTRUCT lpPaint );)��2B�2& ��2������K�2��22 4�2�R�=��~Q�=�����ParameterDescription�]B�2%�2; F���R�=��~�=����;��������lpPaintPoints to the PAINTSTRUCT structure that is to receive painting information. 4��2Y�2) "��2�������Remarks�p%�2@�2w ����2�������;������������|�$����)�B��������������;5�΀����Prepares CWnd for painting and fills a PAINTSTRUCT data structure with information about the painting. The paint structure contains a RECT data structure that has the smallest rectangle that completely encloses the update region, and a flag that specifies whether the background has been erased. The update region is set by the Invalidate, InvalidateRect, or InvalidateRgn member functions and by the system after sizing, moving, creating, scrolling, or any other operation that affects the client area. If the update region is marked for erasing, BeginPaint sends an WM_ONERASEBKGND message. �`Y�2��2X ~���2�������C���������m�vJ����������Do not call the BeginPaint member function except in response to a WM_PAINT message. Each call to the BeginPaint member function must have a matching call to the EndPaint member function. If the caret is in the area to be painted, the BeginPaint member function automatically hides the caret to prevent it from being erased. Returns��@�2��29 @�
�2�������m�vJ�����Identifies the device context for CWnd. The pointer may be temporary, and should not be stored beyond the scope of EndPaint. 5��2��2) "��2�������See Also�c��2��2Z ����2����m�vJ�����|�$������������㚳�*������CWnd::EndPaint, CWnd::Invalidate, CWnd::InvalidateRgn, ::BeginPaint, CPaintDC �`��2:�21����������:�2}�2�3CWnd::BringWindowToTopEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")C��2}�2) "�4�2�������CWnd::BringWindowToTopH:�2��2, (�8�r�=���~����void BringWindowToTop();)}�2��2& ��2������4��2"�2) "��2�������Remarksc#��2�3@ N�G�2���������������Brings CWnd to the top of a stack of overlapping windows. In addition, BringWindowToTop activates pop-up and top-level windows. The BringWindowToTop me"�2�3��2mber function should be used to uncover any window that is partially or completely obscured by any overlapping windows. See AlsoB"�2�3* $�0�2��������::BringWindowToTop �d�3h31����������h3�323CWnd::ChangeClipboardChainEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")G�3�3) "�<�2�������CWnd::ChangeClipboardChainc1h332 4�b�r�=���~������BOOL ChangeClipboardChain( HWND hWndNext );)�3;3& ��2������K3�32 4�2�R�=��~Q�=�����ParameterDescription�V;335 :���R�=��~�=�������hWndNextIdentifies the window that follows CWnd in the Clipboard-viewer chain. 4�3E3) "��2�������Remarks��3&3@ N�C�2���������������Removes CWnd from the chain of Clipboard viewers and makes the window specified by hWndNext the descendant of the CWnd ancestor in the chain. Returnsg2E3�35 :�d�2�����������TRUE if CWnd is removed; otherwise FALSE. 5&3�3) "��2�������See Alsop:�3236 <�t�2������3��������CWnd::SetClipboardViewer, ::ChangeClipboardChain �^�3�31<����������33
3CWnd::CheckDlgButtonEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")A233) "�0�2�������CWnd::CheckDlgButtonr:�3t38 @�t�r�=���~��������void CheckDlgButton( int nIDButton, UINT nCheck );)3�3& ��2������Kt3�32 4�2�R�=��~Q�=�����ParameterDescription�x�3�3V z���R�=��~�=�������������������nIDButtonSpecifies the button control to be modified. nCheckSpecifies the action to take. If nCheck is nonzero, the CheckDlgButton member function places a check mark next to the button; if 0, the check mark is removed. For three-state buttons, if nCheck is 2, the button is dimmed; if nCheck is 1, it is checked; if nCheck is 0, the check mark is removed. 4�3�3) "��2�������Remarks���3�	3. *��2���������Places a check mark next to or removes a check mark from a button control, or, for a three-state button, may dim the button. See Alsoj4�3
36 <�h�2����Ƥ3���������CWnd::IsDlgButtonChecked, ::CheckDlgButton �`�	3�
31o����������
3�
33CWnd::CheckRadioButtonEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")C
3�
3) "�4�2�������CWnd::CheckRadioButton�]�
3|3> L���r�=���~����������void CheckRadioButton( int nIDFirstButton, int nIDLastButton, int nIDCheckButton );)�
3�3& ��2������K|3�32 4�2�R����~Q�������ParameterDescriptionK�3;
3@ N��R����~���������������nIDFirstButtonSpecifies the integer identifier of the first radio button in the group. nIDLastButtonSpecifies the integer identifier of the last radio button in the group. nIDCheckButtonSpecifies the integer identifier of the radio button to be checked. 4�3o
3) "��2�������RemarksA;
3�3@ N��2���������������Checks the radio button specified by nIDCheckButton and removes the check mark from all other radio buttons in the group of buttons specified by nIDFirstButton and nIDLastButton. Checking a radio button turns the radio button on or off. See Alsoo9o
336 <�r�2����^�4��������CWnd::GetCheckedRadioButton, ::CheckRadioButton �d�3�31����������3@3�D3CWnd::ChildWindowFromPointEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")G3@3) "�<�2�������CWnd::ChildWindowFromPoint�3@33h6�3t@32 4�l�r�=���~������CWnd* ChildWindowFromPoint( POINT point ) const;)@3�@3& ��2������Kt@3�@32 4�2�R�=��~Q�=�����ParameterDescriptionuF�@3]A3/ .���R�=��~�=�����pointSpecifies the client coordinates of the point to be tested. 4�@3�A3) "��2�������Remarks�n]A32B33 6���2�����������Determines which, if any, of the child windows belonging to CWnd contains the specified point. Returns��A3GC33 4���2����������Identifies the child window that contains the point. It is NULL if the given point lies outside of the client area. If the point is within the client area but is not contained within any child window, CWnd is returned. �2B3SD35 8���2������������This member function will return a hidden or disabled child window that contains the specified point. The CWnd* that is returned may be temporary, and should not be stored beyond its immediate use. See Alsom7GC3�D36 <�n�2����D3?���������CWnd::WindowFromPoint, ::ChildWindowFromPoint �^SD3OE31����������OE3�E3.K3CWnd::ClientToScreenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")A�D3�E3) "�0�2�������CWnd::ClientToScreen�cOE32F3? N���r�=���~�����������void ClientToScreen( LPPOINT lpPoint ) const;void ClientToScreen( LPRECT lpRect ) const;)�E3[F3& ��2������K2F3�F32 4�2�R�=��~Q�=�����ParameterDescription$�[F3�G3P n���R�=��~�=�����������������lpPointPoints to a POINT structure or CPoint that contains the client coordinates to be converted. lpRectPoints to a RECT structure or CRect that contains the client coordinates to be converted. 4�F3�G3) "��2�������Remarks ��G3J3Q p���2��������������������Converts the client coordinates of a given point or rectangle on the display to screen coordinates. The ClientToScreen member function uses the client coordinates in the POINT or RECT structure, or CPoint or CRect pointed to by lpPoint or lpRect, to compute new screen coordinates; it then replaces the coordinates in the structure with the new coordinates. The new screen coordinates are relative to the upper-left corner of the system display. �w�G3�J33 6���2�����������The ClientToScreen member function assumes that the given point or rectangle is in client coordinates. See Alsof0J3.K36 <�`�2����t��F��������CWnd::ScreenToClient, ::ClientToScreen �[�J3�K31�����������K3�K3]N3CWnd::CloseWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>.K3�K3) "�*�2�������CWnd::CloseWindowC�K3;L3, (�.�r�=���~����void CloseWindow();)�K3dL3& ��2������4;L3�L3) "��2�������Remarksh'dL3N3A P�O�2����������������Minimizes CWnd. If CWnd is an overlapped window, it is minimized by removing the client area and caption of the open window from the display screen and moving its icon into the icon area of the screen. This member function has no effect if CWnd is a pop-up or child window. See Also]'�L3]N36 <�N�2����]�$��������CWnd::OpenIcon, ::CloseWindow �VN3�N31;����������N3O32�3CWnd::CreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")9]N3O3) "� �2�������CWnd::Create���N3�3Q p�9�r�=���~����������������BOOL Create( const char FAR* lpClassName, const char FAR* lpWindowName, DWORD dwStyle, const RECT& rect, const CWnd* pParentWnd, UINT O3�3]N3nID );)O3?�3& ��2������K�3��32 4�2�R�{��~Q�{�����ParameterDescription#�?�3��3h ��w�R�{��~�{��������e�z��������������������lpClassNamePoints to a null-terminated character string that names the Windows class (a WNDCLASS struct). The class name can be any name registered with the AfxRegisterWndClass function or any of the predefined control-class names. If NULL, uses the default CWnd attributes. See CreateEx for a description of the possible values. lpWindowNamePoints to a null-terminated character string that contains the window name. p
��3�3f ���R�{��~�{����6C4�������������������������dwStyleSpecifies the window style attributes. See CreateEx for a description of the possible values. rectThe size and position of the window, in client coordinates of pParentWnd. pParentWndThe parent window. nIDThe ID of the child window. 4��3Q�3) "��2�������Remarks���3/�3S t��2����������\僭������������Creates a Windows child window and attaches it to the CWnd object. You construct a child window in two steps. First, invoke the constructor, which constructs the CWnd object, then call Create, which creates the Windows child window and attaches it to CWnd. Create initializes the window's class name and window name, and registers values for its style, parent, and ID. Returnsl=Q�3��3/ .�z�2���������TRUE if initialization is successful; otherwise FALSE. 5/�3І3) "��2�������See Alsob&��32�3< H�L�2������C������������CWnd::CWnd, CWnd::CreateEx �[І3��31������������3��3}�3CWnd::CreateCaretEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>2�3��3) "�*�2�������CWnd::CreateCaret]+��3Y�32 4�V�r�=���~������void CreateCaret( CBitmap* pBitmap );)��3��3& ��2������KY�3͈32 4�2�R�=��~Q�=�����ParameterDescriptiono@��3<�3/ .���R�=��~�=�����pBitmapIdentifies the bitmap that defines the caret shape. 4͈3p�3) "��2�������Remarks��<�3k�3Y ��E�2������ɴt������>!Ā����*�h�������Creates a new shape for the system caret and claims ownership of the caret. The bitmap must have previously been created by using the CBitmap::CreateBitmap member function, CreateDIBitmap Windows function, or the CBitmap::LoadBitmap member function. Automatically destroys the previous caret shape, if any, regardless of which window owns the caret. Once created, the caret is initially hidden. To show the caret, the ShowCaret member function must be called. The system caret is a shared resource. CWnd should create a caret only when it has the input focus or is active. It should destroy the caret before losing the input focus or becoming inactive. 5p�3��3) "��2�������See Also��k�3}�3[ ���2����ɴt��������>!Ā���*�h��������CBitmap::CreateBitmap, ::CreateDIBitmap, ::DestroyCaret, CBitmap::LoadBitmap, CWnd::ShowCaret, ::CreateCaret �X��3�31�����������3A�3��3CWnd::CreateExEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");}�3A�3) "�$�2�������CWnd::CreateExA��3��3i ����r�=���~������������������������Protected: BOOL CreateEx( DWORD dwExStyle, const char FAR* lpClassName, const char FAR* lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hwndParent, HMENU nIDorHMenu );)A�3��3& ��2������K��3�32 4�2�R�{��~Q�{�����ParameterDescription��3�3}�3�o��3��35 :���R�{��~�{�������dwExStyleSpecifies the extended style of the CWnd being created. It may be one of the following values: C�3��32 4�"�R�M�/}Q�M�����StyleMeaning�j��3��3j ����R�M�/}�M����6C4������������������\I������WS_EX_DLGMODALFRAMEDesignates a window with a double border that may optionally be created with a title bar by specifying the WS_CAPTION style flag in dwStyle. WS_EX_NOPARENTNOTIFYSpecifies that a child window created with this style will not send the WM_PARENTNOTIFY message to its parent window when the child window is created or destroyed. WS_EX_TOPMOSTSpecifies that a window created with this style should be placed above all nontopmost windows and stay above them even when CWnd is deactivated. An application can use the SetWindowPos member function to add or remove this attribute. H���3�3r ����R�{��~�{��������e�z������������������������lpClassNamePoints to a null-terminated character string that names the Windows class (a WNDCLASS struct). The class name can be any name registered with the AfxRegisterWndClass function or any of the predefined control-class names. It must not be NULL. lpWindowNamePoints to a null-terminated character string that contains the window name. dwStyleSpecifies the Windows style of CWnd. xSpecifies the initial x-position of the CWnd window. #���32�3n ��k�R�{��~�{�������������������������������ySpecifies the initial top position of the CWnd window. nWidthSpecifies the width (in device units) of the CWnd window. nHeightSpecifies the height (in device units) of the CWnd window. hwndParentIdentifies the parent or owner window of the CWnd window being created. Use NULL for top-level windows. nIDorHMenuIdentifies a menu or a child-window identifier. The meaning depends on the style of the window. 4�3f�3) "��2�������Remarks4�2�3��3w ��{�2�����������������e�������@������6�����ؤ"�����Creates an overlapped, pop-up, or child window with the extended style specified in dwExStyle. The CreateEx parameters specify the WNDCLASS, window title, window style, and (optionally) initial position and size of the window. CreateEx also specifies the window's parent (if any) and ID. When CreateEx executes, Windows sends the WM_GETMINMAXINFO, WM_NCCREATE, WM_NCCALCSIZE, and WM_CREATE messages to the window. �f�3��3] ��U�2��������ؤ"�����������6C4��������To extend the default message handling, derive a class from CWnd, add a message map to the new class, and provide member functions for the above messages. Override OnCreate, for example, to perform needed initialization for a new class. Override further OnMessage message handlers to add further functionality to your derived class. The dwStyle parameter can be any combination of window styles: Returnsr=��3�35 :�z�2�����������TRUE if the CWnd window is created; otherwise FALSE. 5��3H�3) "��2�������See Also@�3��3* $�,�2��������::CreateWindowEx �_H�3�31M����������3Z�3 4CWnd::CreateGrayCaretEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B��3Z�3) "�2�2�������CWnd::CreateGrayCaretp8�3��38 @�p�r�=���~��������void CreateGrayCaret( int nWidth, int nHeight );)Z�3��3& ��2������K��3>�32 4�2�R�=��~Q�=�����ParameterDescriptionc+��3�48 >�W�R�=��~�=���������nWidthSpecifies the width of the caret (in logical units). If this parameter is 0, the width is set to the system-defined window-border>�3�4��3 width. nHeightSpecifies the height of the caret (in logical units). If this parameter is 0, the height is set to the system-defined window-border height. 4>�3�4) "��2�������Remarkse�4F4G \�=�2�������������*�h�����Creates a gray rectangle for the system caret and claims ownership of the caret. The caret shape can be a line or a block. The parameters nWidth and nHeight specify the caret's width and height (in logical units); the exact width and height (in pixels) depend on the mapping mode. The CreateGrayCaret member function automatically destroys the previous caret shape, if any, regardless of which window owns the caret. Once created, the caret is initially hidden. To show the caret, the ShowCaret member function must be called. ��4Y4@ N���2���������������The system caret is a shared resource. CWnd should create a caret only when it has the input focus or is active. It should destroy the caret before losing the input focus or becoming inactive. The system's window-border width or height can be retrieved by using the GetSystemMetrics Windows function with the SM_CXBORDER and SM_CYBORDER indexes. Using the window-border width or height ensures that the caret will be visible on a high-resolution display. 5F4�4) "��2�������See Also�PY4 4B T���2��������*�h��������::DestroyCaret, ::GetSystemMetrics, CWnd::ShowCaret, ::CreateCaret �`�4�41�����������4�4�4CWnd::CreateSolidCaretEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")C 4�4) "�4�2�������CWnd::CreateSolidCaretq9�4e48 @�r�r�=���~��������void CreateSolidCaret( int nWidth, int nHeight );)�4�4& ��2������Ke4�42 4�2�R�=��~Q�=�����ParameterDescriptionc+�4<	48 >�W�R�=��~�=���������nWidthSpecifies the width of the caret (in logical units). If this parameter is 0, the width is set to the system-defined window-border width. nHeightSpecifies the height of the caret (in logical units). If this parameter is 0, the height is set to the system-defined window-border height. 4�4p	4) "��2�������Remarkse<	4�4G \�=�2�������������*�h�����Creates a solid rectangle for the system caret and claims ownership of the caret. The caret shape can be a line or block. The parameters nWidth and nHeight specify the caret's width and height (in logical units); the exact width and height (in pixels) depend on the mapping mode. The CreateSolidCaret member function automatically destroys the previous caret shape, if any, regardless of which window owns the caret. Once created, the caret is initially hidden. To show the caret, the ShowCaret member function must be called. �p	4�
4@ N���2���������������The system caret is a shared resource. CWnd should create a caret only when it has the input focus or is active. It should destroy the caret before losing the input focus or becoming inactive. The system's window-border width or height can be retrieved by using the GetSystemMetrics Windows function with the SM_CXBORDER and SM_CYBORDER indexes. Using the window-border width or height ensures that the caret will be visible on a high-resolution display. 5�44) "��2�������See Also�P�
4�4B T���2��������*�h��������::DestroyCaret, ::GetSystemMetrics, CWnd::ShowCaret, ::CreateCaret �T4441<���������44k4rA4CWnd::CWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")7�4k4) "��2�������CWnd::CWnd744�4, (��r�=���~����CWnd();)k4�4& ��2������4�4@4) "��2�������Remarks�4@4�4���4�@4L f�3�2�������������\僭��������Constructs a CWnd object. The Windows window is not created and attached until the CreateEx or Create member function is called. See Also�9@4rA4H `�r�2������������Ԏ���㊁+������CWnd::CreateEx, CWnd::Create, CWnd::~CWnd �U�@4�A41�����������A40B4�C4CWnd::~CWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")8rA40B4) "��2�������CWnd::~CWnd@�A4pB4, (�(�r�=���~����virtual ~CWnd();)0B4�B4& ��2������4pB4�B4) "��2�������Remarks|I�B4IC43 6���2�����������Destroys a CWnd object and destroys the attached window. See Alsog+�B4�C4< H�V�2������C����I`t������CWnd::CWnd, CWnd::DestroyWindow �WIC48D41Y���������8D4rD4�G4CWnd::DefaultEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')"):�C4rD4) "�"�2�������CWnd::DefaultJ8D4�D4, (�<�r�=���~����Protected: LONG Default();)rD4�D4& ��2������4�D4E4) "��2�������Remarksp3�D4�F4= H�g�2��������������Calls the default window procedure. The default window procedure provides default processing for any window message that an application does not process. This member function is used to ensure that every message is processed. All CWnd OnMessage member functions call this member function. Returnsb<E4�F4& �x�2������Depends on the message that was passed to this function. 5�F4 G4) "��2�������See Alsoz>�F4�G4< H�|�2������)�'��������::DefDlgProc, CWnd::DefWindowProc, ::DefWindowProc �] G4(H41]���������(H4hH4�M4CWnd::DefWindowProcEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@�G4hH4) "�.�2�������CWnd::DefWindowProc�Z(H4I4> L���r�=���~����������Protected: virtual LONG DefWindowProc( UINT message, UINT wParam, LONG lParam );)hH4)I4& ��2������KI4tI42 4�2�R�=��~Q�=�����ParameterDescription
�)I4�J4@ N���R�=��~�=�������������messageSpecifies the Windows message to be processed. wParamSpecifies 16 bits of additional message-dependent information. lParamSpecifies 32 bits of additional message-dependent information. 4tI4�J4) "��2�������Remarks���J4�L45 8�;�2������������Calls the default window procedure, which provides default processing for any window message that an application does not process. This member function is used to ensure that every message is processed. It should be called with the same parameters as those received by the window procedure. The source code for the DefWindowProc function is provided on the Windows Software Development Kit disks. Returnsd>�J4�L4& �|�2������Dependent on the message that was passed to this function. 5�L4 M4) "��2�������See Alsot8�L4�M4< H�p�2������L���������::DefDlgProc, CWnd::Default, ::DefWindowProc �] M4"N41����������"N4bN43�4CWnd::DeleteTempMapEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@�M4bN4) "�.�2�������CWnd::DeleteTempMapL "N4�N4, (�@�r�=���~����static void DeleteTempMap();)bN4�N4& ��2������4�N4O4) "��2�������Remarks���N4�O4F Z��2���������S�4��������Called automatically by the idle time handler of CWinApp, and deletes any temporary CWnd objects created by FromHandle. See AlsoHO43�40 0�0�2����O43�4�M4�Z�?������CWnd::FromHandle �]�O4��41�����������4�4��4CWnd::DestroyWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@3�4�4) "�.�2�������CWnd::DestroyWindowM!��4N�4, (�B�r�=���~����virtual BOOL DestroyWindow();)�4w�4& ��2������4N�4��4) "��2�������RemarksF�w�4�4c ����2���������������	�ۀ����j��������Destroys the Windows window attached to CWnd. The DestroyWindow member function sends appropriate messages to CWnd to deactivate it and remove the input focus. It also destroys the CWnd menu, flushes the application queue, destroys outstanding timers, removes Clipboard ownership, and breaks the Clipboard-viewer chain if CWnd is at the top of the viewer chain. It sends WM_DESTROY and WM_NCDESTROY messages to the window. It does not destroy the CWnd object. T���4E�4_ ����2�������������������6C4�������If CWnd is the parent of any windows, these child windows are automatically destroyed when the parent window is destroyed. The DestroyWindow member function destroys child windows first, and then CWnd itself. The DestroyWindow member function also destroys modeless dialog boxes created by the CreateDialog Windows function. If the CWnd being destroyed is a child window and does not have the WS_NOPARENTNOTIFY style set, then the WM_PARENTNOTIFY message is sent to the parent. 4�4y�4) "��2�������Returns�jE�4�42 4���2����������Specifies whether the window is destroyed. It is TRUE if the window is destroyed; otherwise FALSE. 5y�4J�4) "��2�������See Also�N�4��4H `���2������	�ۀ���q$���������::CreateDialog, CWnd::OnDestroy, CWnd::Detach, ::DestroyWindow �VJ�4g�41��������g�4��4��4CWnd::DetachEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")9��4��4) "� �2�������CWnd::Detach>g�4ވ4, (�$�r�=���~����HWND Detach();)��4�4& ��2������4ވ4;�4) "��2�������Remarks�T�4‰43 6���2�����������Detaches a Windows handle from a CWnd object and returns the handle. ReturnsO#;�4�4, (�F�2��������A HWND to the Windows object. 5‰4F�4) "��2�������See AlsoD�4��40 0�(�2����!�}������CWnd::Attach �ZF�4�41X���������4R�4��4CWnd::DlgDirListEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=��4R�4) "�(�2�������CWnd::DlgDirList�l�4�4D X���r�=���~������������int DlgDirList( const char FAR* lpPathSpec, int nIDListBox, int nIDStaticPath, UINT nFileType );)R�4+�4& ��2������K�4v�42 4�2�R�k��~Q�k�����ParameterDescription2�+�4��4^ ����R�k��~�k�����������������������lpPathSpecPoints to a path string, must be a CString or a null-terminated character string. nIDListBoxSpecifies the identifier of a list box control. If nIDListBox is 0, DlgDirList assumes that no list box exists and does not attempt to fill one. nIDStaticPathSpecifies the identifier of the static-text control used for displaying the current drive and directory. If nIDStaticPath is 0, DlgDirList assumes that no such text control is present. �xv�4O�4/ .���R�k��~�k�����nFileTypeSpecifies the attributes of the files to be displayed. It can be any combination of the following values: C��4��42 4�"�R�-�?Q�-�����ValueMeaning|-O�4�4O l�[�R�-�?�-��������������������������0x0000Read/write data files w��4�4��4ith no additional attributes. 0x0001Read-only files. 0x0002Hidden files. 0x0004System files. 0x0010Subdirectories. 0x0020Archives. 0x2000LB_DIR flag. If the LB_DIR flag is set, Windows places the messages generated by DlgDirList in the application's queue; otherwise they are sent directly to the dialog function. 0x4000Drives. 0x8000Exclusive bit. If the exclusive bit is set, only files of the specified type are listed. Otherwise, files of the specified type are listed in addition to normal files. 4��4N�4) "��2�������Remarks���4!�4M h�
�2��������������������Fills a list box control with a file or directory listing. It fills the list box specified by nIDListBox with the names of all files matching the path given by lpPathSpec. The DlgDirList member function shows subdirectories enclosed in square brackets ([ ]), and shows drives in the form [-x-], where x is the drive letter. The lpPathSpec parameter has the following form: (N�4I�4% ��0�����^9!�4��4% �r�0���	��[drive:] [ [\u]directory[\idirectory]...\u] [filename]4�I�4��4K d���������������������In this example, drive is a drive letter, directory is a valid directory name, and filename is a valid filename that must contain at least one wildcard character. The wildcard characters are a question mark (?), meaning match any character, and an asterisk (*), meaning match any number of characters. If you specify a zero-length string for lpPathSpec or if you specify only a directory name but do not include any file specification, the string will be changed to "*.*". !���4��4L f����������������������If lpPathSpec includes a drive and/or directory name, the current drive and directory are changed to the designated drive and directory before the list box is filled. The text control identified by nIDStaticPath is also updated with the new drive and/or directory name. After the list box is filled, lpPathSpec is updated by removing the drive and/or directory portion of the path. DlgDirList sends LB_RESETCONTENT and LB_DIR messages to the list box. 3��4/�4(  ��������Returns����4�4& �u������Specifies the outcome of the function. It is nonzero if a listing was made, even an empty listing. A 0 return value implies that the input string did not contain a valid search path. 4/�4C�4(  ��������See Alsoe0�4��45 :�`�����=��������CWnd::DlgDirListComboBox, ::DlgDirList �bC�4;�41&��������;�4�4�5CWnd::DlgDirListComboBoxEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")D��4�4(  �8�������CWnd::DlgDirListComboBox�u;�48�4D X���r�=���~������������int DlgDirListComboBox( const char FAR* lpPathSpec, int nIDComboBox, int nIDStaticPath, UINT nFileType );)�4a�4& ��2������K8�4��42 4�2�R�y��~Q�y�����ParameterDescriptionV�a�4�4^ ����R�y��~�y�����������������������lpPathSpecPoints to a path string, must be a CString or a null-terminated character string. nIDComboBoxSpecifies the identifier of a combo box control in a dialog box. If nIDComboBox is 0, DlgDirListComboBox assumes that no combo box exists and does not attempt to fill one. nIDStaticPathSpecifies the identifier of the static-text control used for displaying the current drive and directory. If nIDStaticPath is 0, DlgDirListComboBox assumes that no such text control is present. �}��4��4/ .���R�y��~�y�����nFileTypeSpecifies DOS file attributes of the files to be displayed. It can be any combination of the following values: C�452 4�"�R�=�?Q�=�����ValueMeaning��45��4�5��4�5O l�k�R�=�?�=��������������������������0x0000Read/write data files with no additional attributes. 0x0001Read-only files. 0x0002Hidden files. 0x0004System files. 0x0010Subdirectories. 0x0020Archives. 0x2000CB_DIR flag. If the CB_DIR flag is set, Windows places the messages generated by DlgDirListComboBox in the application's queue; otherwise they are sent directly to the dialog function. 0x4000Drives. 0x8000Exclusive bit. If the exclusive bit is set, only files of the specified type are listed. Otherwise, files of the specified type are listed in addition to normal files. 45�5) "��2�������Remarks���5�5M h�c�2��������������������Fills the list box of a combo box control with a file or directory listing. It fills the list box of the combo box specified by nIDComboBox with the names of all files matching the path given by lpPathSpec. The DlgDirListComboBox member function shows subdirectories enclosed in square brackets ([ ]), and shows drives in the form [-x-], where x is the drive letter. The lpPathSpec parameter has the following form: (�5�5% ��0�����^9�5H5% �r�0���	��[drive:] [ [\u]directory[\idirectory]...\u] [filename]4��5|5K d���������������������In this example, drive is a drive letter, directory is a valid directory name, and filename is a valid filename that must contain at least one wildcard character. The wildcard characters are a question mark (?), meaning match any character, and an asterisk (*), meaning match any number of characters. If you specify a zero-length string for lpPathSpec or if you specify only a directory name but do not include any file specification, the string will be changed to "*.*". 4�H5�	5L f����������������������If lpPathSpec includes a drive and/or directory name, the current drive and directory are changed to the designated drive and directory before the list box is filled. The text control identified by nIDStaticPath is also updated with the new drive and/or directory name. After the combo box list box is filled, lpPathSpec is updated by removing the drive and/or directory portion of the path. DlgDirListComboBox sends CB_RESETCONTENT and CB_DIR messages to the combo box. 3|5�	5(  ��������Returns���	5�
5& �u������Specifies the outcome of the function. It is nonzero if a listing was made, even an empty listing. A 0 return value implies that the input string did not contain a valid search path. 4�	5�
5(  ��������See Also�H�
5�5A R������������������������CWnd::DlgDirList, CWnd::DlgDirSelect, ::DlgDirListComboBox �\�
5
51���������
5K5!D5CWnd::DlgDirSelectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>�5K5(  �,�������CWnd::DlgDirSelectt<
5�58 @�x�r�=���~��������BOOL DlgDirSelect( LPSTR lpString, int nIDListBox );)K5�5& ��2������K�53
52 4�2�R�=��~Q�=�����ParameterDescription���558 >�U�R�=��~�=���������lpStringPoints to a buffer that is to receive the current selection in the list box. nIDListBoxSpecifies the integer ID of a list box control in the dialog box. 43
5I5) "��2�������Remarks�85�@5L f�q�2���������������������Retrieves the current selection from a list box. It assumes that the list box has been filled by the DlgDirList member function and that the selection is a drive letter, a file, or a directory name. The DlgDirSelect member function copies the selection to the buffer given by lpString. If the current selection is a directory name or drive letter, DlgDI5�@5�5irSelect removes the enclosing square brackets (and hyphens, for drive letters) so that the name or letter is ready to be inserted into a new path. If there is no selection, lpString does not change. �VI5zB5K d���2��������������������DlgDirSelect sends LB_GETCURSEL and LB_GETTEXT messages to the list box. The DlgDirSelect member function does not allow more than one filename to be returned from a list box. The list box must not be a multiple-selection list box. If it is, this function will not return a 0 value and lpString will remain unchanged. Returns���@56C53 4��2����������Specifies the status of the current list box selection. It is TRUE if the current selection is a directory name; otherwise FALSE. 5zB5kC5) "��2�������See Also�h6C5!D5N l���2�����������=����-����������CWnd::DlgDirList, CWnd::DlgDirListComboBox, CWnd::DlgDirSelectComboBox, ::DlgDirSelect �dkC5�D51N���������D5�D5L5CWnd::DlgDirSelectComboBoxEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")G!D5�D5) "�<�2�������CWnd::DlgDirSelectComboBox}E�D5zE58 @���r�=���~��������BOOL DlgDirSelectComboBox( LPSTR lpString, int nIDComboBox );)�D5�E5& ��2������KzE5�E52 4�2�R�y��~Q�y�����ParameterDescription���E5�F58 >�5�R�y��~�y���������lpStringPoints to a buffer that is to receive the selected path. nIDComboBoxSpecifies the integer ID of the combo box control in the dialog box. 4�E5�F5) "��2�������Remarks�g�F5�I5@ N���2������=����������Retrieves the current selection from the list box of a combo box. It assumes that the list box has been filled by the DlgDirListComboBox member function and that the selection is a drive letter, a file, or a directory name. The DlgDirSelectComboBox member function copies the selection to the specified buffer. If the current selection is a directory name or drive letter, DlgDirSelectComboBox removes the enclosing square brackets (and hyphens, for drive letters) so that the name or letter is ready to be inserted into a new path. If there is no selection, the contents of the buffer are not changed. ��F5�J5D V���2�����������������DlgDirSelectComboBox sends CB_GETCURSEL and CB_GETLBTEXT messages to the combo box. The DlgDirSelectComboBox member function does not allow more than one filename to be returned from a combo box. Returns���I5uK53 4��2����������Specifies the status of the current combo box selection. It is TRUE if the current selection is a directory name; otherwise FALSE. 5�J5�K5) "��2�������See Alsop:uK5L56 <�t�2�����=��������CWnd::DlgDirListComboBox, ::DlgDirSelectComboBox �[�K5�L51����������L5�L5�N5CWnd::DrawMenuBarEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>L5�L5) "�*�2�������CWnd::DrawMenuBarC�L5'M5, (�.�r�=���~����void DrawMenuBar();)�L5PM5& ��2������4'M5�M5) "��2�������Remarks��PM5FN5. *�)�2���������Redraws the menu bar. If a menu bar is changed after Windows has created the window, call this function to draw the changed menu bar. See Also=�M5�N5* $�&�2��������::DrawMenuBar �\FN5O51���������O5OO5�5CWnd::EnableWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?�N5OO5) "�,�2�������CWnd::EnableWindowi1O5�O58 @�b�r�=���~��������BOOL EnableWindow( BOOL bEnable = TRUE );)OO5�O5& ��2������K�O58�52 4�2�R��O58�5�N5=��~Q�=�����ParameterDescription	��O5A�5H ^���R�=��~�=�������������bEnableSpecifies whether the given window is to be enabled or disabled. If this parameter is TRUE, the CWnd will be enabled. If this parameter is FALSE, the CWnd will be disabled. 48�5u�5) "��2�������RemarksdA�5ل5H ^�9�2������0�U3�����0�U3��������Enables or disables mouse and keyboard input. When input is disabled, input such as mouse clicks and keystrokes is ignored. When input is enabled, the window processes all input. If the enabled state is changing, the WM_ENABLE message is sent before this function returns. If disabled, all child windows are implicitly disabled, although they are not sent WM_ENABLE messages. CWnd must be enabled before it can be activated. For example, if an application is displaying a modeless dialog box and has disabled its main window, the main window must be enabled before the dialog box is destroyed. Otherwise, another window will get the input focus and be activated. If a child window is disabled, it is ignored when Windows tries to determine which window should get mouse messages. �vu�5��59 B���2�������������Initially, all windows are enabled by default. EnableWindow must be used to disable CWnd explicitly. Returns#�ل5��5E X���2����������������Indicates the state before the EnableWindow member function was called. The return value is TRUE if CWnd was previously enabled. The return value is FALSE if CWnd was previously disabled or an error occurred. 5��5��5) "��2�������See Also>��5�5* $�(�2��������::EnableWindow �X��5��51����������5�5��5CWnd::EndPaintEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");�5�5) "�$�2�������CWnd::EndPaint_-��5A�52 4�Z�r�=���~������void EndPaint( LPPAINTSTRUCT lpPaint );)�5j�5& ��2������KA�5��52 4�2�R�=��~Q�=�����ParameterDescription��j�5��5H ^��R�=��~�=����;�������-{������lpPaintPoints to a PAINTSTRUCT structure that contains the painting information retrieved by the BeginPaint member function. 4��5��5) "��2�������Remarks�/��5=�5S t�_�2�������-{������-{�����������Marks the end of painting in the given window. The EndPaint member function is required for each call to the BeginPaint member function, but only after painting is complete. If the caret was hidden by the BeginPaint member function, EndPaint restores the caret to the screen. See Alsov4��5��5B T�h�2����-{������㚳�*������CWnd::BeginPaint, ::EndPaint, CPaintDC �Z=�5>�51z��������>�5{�5��5CWnd::FindWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=��5{�5) "�(�2�������CWnd::FindWindow�]>�5�58 @���r�=���~��������static CWnd* FindWindow( const char FAR* lpClassName, const char FAR* lpWindowName );){�59�5& ��2������K�5��52 4�2�R�{��~Q�{�����ParameterDescription�J9�5*�5\ ����R�{��~�{���������������������lpClassNamePoints to a null-terminated string that specifies the window's class name. If lpClassName is NULL, all class names match (a WNDCLASS struct). lpWindowNamePoints to a null-terminated string that specifies the window name (the window's text caption). If lpWindowName is NULL, all window names match. 4��5^�5) "��2�������Remarks��*�5\�5@ N�e�2���������������Returns the CWnd whose class is given by lpClassName and whose window name, or caption, is gi^�5\�5��5ven by lpWindowName. This function does not search child windows. Returns�u^�5��5, (���2��������Identifies the window that has the specified class name and window name. It is NULL if no such window is found. �S\�5��53 6���2�����������The CWnd* may be temporary and should not be stored for later use. See Also<��5��5* $�$�2��������::FindWindow �[��5K�51��������	K�5��5r�5CWnd::FlashWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>��5��5) "�*�2�������CWnd::FlashWindowY'K�5��52 4�N�r�=���~������BOOL FlashWindow( BOOL bInvert );)��5�5& ��2������K��5V�52 4�2�R�=��~Q�=�����ParameterDescription^
�5��5T v��R�=��~�=�����������������bInvertSpecifies whether the CWnd is to be flashed or returned to its original state. The CWnd is flashed from one state to the other if bInvert is TRUE. If bInvert is FALSE, the window is returned to its original state (either active or inactive). 4V�5��5) "��2�������Remarksu.��5]�5G \�]�2������������������Flashes the given window once. Flashing the CWnd means changing the appearance of its caption bar as if the CWnd were changing from inactive to active status, or vice versa. (An inactive caption bar changes to an active caption bar; an active caption bar changes to an inactive caption bar.) Typically, a CWnd is flashed to inform the user that it requires attention, but that it does not currently have the input focus. FlashWindow flashes the window only once; for successive flashing, create a system timer and repeatedly call FlashWindow. �r��5.�5_ ����2��������������������������The bInvert parameter should be FALSE only when CWnd is getting the input focus and will no longer be flashing; it should be TRUE on successive calls while waiting to get the input focus. This function always returns TRUE for iconic windows. If CWnd is iconic, FlashWindow will simply flash the icon; bInvert is ignored for iconic windows. Returns��]�5�5? L�'�2��������������Specifies the state before the call to the FlashWindow member function. It is TRUE if CWnd was active before the call; otherwise FALSE. 5.�55�5) "��2�������See Also=�5r�5* $�&�2��������::FlashWindow �Z5�5��51���������
��5:�5��5CWnd::FromHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=r�5:�5) "�(�2�������CWnd::FromHandle]+��5��52 4�V�r�=���~������static CWnd* FromHandle( HWND hWnd );):�5��5& ��2������K��5�52 4�2�R�=��~Q�=�����ParameterDescription\'��5g�55 :�N�R�=��~�=�������hWndA HWND of a Windows window. 4�5��5) "��2�������Remarks��g�5��5@ N�q�2���������������Returns a pointer to a CWnd object when given a handle to a window. If a CWnd object is not attached to the handle, a temporary CWnd object is created and attached. ReturnsvP��5	�5& ���2������The pointer may be temporary, and should not be stored beyond immediate use. 5��5>�5) "��2�������See AlsoK	�5��50 0�6�2�����:�������CWnd::DeleteTempMap �_>�5�51y���������5[�5�6CWnd::GetActiveWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B��5[�5) "�2�2�������CWnd::GetActiveWindowO#�5��5, (�F�r�=���~����static CWnd* GetActiveWindow();)[�5��5& ��2������4��56) "��2�������Rem��56��5arks���5*6F Z���2���������~Wȑ��������Retrieves a pointer to the active CWnd. The active CWnd is either the window that has the current input focus, or the window explicitly made active by the SetActiveWindow member function. Returns��6�6- (�=�2��������The active window, or NULL if no window was active at the time of the call. The pointer may be temporary, and should not be stored beyond immediate use. 5*6*6) "��2�������See Alsoh2�6�66 <�d�2����~Wȑ��������CWnd::SetActiveWindow, ::GetActiveWindow �Z*661���������6Z6�6CWnd::GetCaptureEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=�6Z6) "�(�2�������CWnd::GetCaptureJ6�6, (�<�r�=���~����static CWnd* GetCapture();)Z6�6& ��2������4�66) "��2�������Remarksj#�6k6G \�G�2�����������(j��������Retrieves the CWnd that has the mouse capture. Only one window has the mouse capture at any given time. This window receives mouse input whether or not the cursor is within its borders. The CWnd receives the mouse capture when the SetCapture member function is called. Returns�f6�6, (���2��������Identifies the window that has the mouse capture. It is NULL if no window has the mouse capture. �Yk6�6- *���2���������The return value may be temporary, and should not be stored for later use. See Also^(�6�66 <�P�2�����(j��������CWnd::SetCapture, ::GetCapture �[�6m61���������
m6�6.
6CWnd::GetCaretPosEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>�6�6) "�*�2�������CWnd::GetCaretPosL m6�6, (�@�r�=���~����static CPoint GetCaretPos();)�6 6& ��2������4�6T6) "��2�������Remarks� 6T	6; D���2��������������Retrieves the client coordinates of the caret's current position, and copies them to a CPoint structure. The caret position is given in the client coordinates of the CWnd window. Returnsh?T6�	6) "�~�2�������CPoint containing the coordinates of the caret's position. 5T	6�	6) "��2�������See Also=�	6.
6* $�&�2��������::GetCaretPos �e�	6�
61����������
66�6CWnd::GetCheckedRadioButtonEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")H.
66) "�>�2�������CWnd::GetCheckedRadioButton�K�
6�68 @���r�=���~��������int GetCheckedRadioButton( int nIDFirstButton, int nIDLastButton );)6�6& ��2������K�662 4�2�R�m��~Q�m�����ParameterDescription���6�68 >�k�R�m��~�m���������nIDFirstButtonSpecifies the integer identifier of the first radio button in the group. nIDLastButtonSpecifies the integer identifier of the last radio button in the group. 46$
6) "��2�������Remarks�j�6�
6- *���2���������This function retrieves the ID of the currently checked radio button in the specified group. ReturnsI#$
66& �F�2������ID of the checked radio button. 5�
696) "��2�������See AlsoN6�60 0�<�2�������������CWnd::CheckRadioButton �]9661���������6U6�B6CWnd::GetClientRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@�6U6) "�.�2�������CWnd::GetClientRectb06�62 4�`�r�=���~������void GetClientRect( LPRECT lpRect ) const;)U6�6& ��2������K�67@62 4�2�R�=�67@6�6��~Q�=�����ParameterDescription�X�6�@6; F���R�=��~�=���������lpRectPoints to a RECT structure or a CRect to receive the client coordinates. 47@6�@6) "��2�������Remarks�Z�@6�B6@ N���2���������������Copies the client coordinates of the CWnd client area into the structure pointed to by lpRect. The client coordinates specify the upper-left and lower-right corners of the client area. Since client coordinates are relative to the upper-left corners of the CWnd client area, the coordinates of the upper-left corner are (0,0). See Alsod.�@6�B66 <�\�2����0F���������CWnd::GetWindowRect, ::GetClientRect �a�B6�C61#���������C6�C6�F6CWnd::GetClipboardOwnerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")D�B6�C6) "�6�2�������CWnd::GetClipboardOwnerQ%�C6#D6, (�J�r�=���~����static CWnd* GetClipboardOwner();)�C6LD6& ��2������4#D6�D6) "��2�������Remarks��LD6>E6/ ,��2����������Retrieves the current owner of the Clipboard. The Clipboard can still contain data even if the Clipboard is not currently owned. Returns�^�D6�E62 4���2����������Identifies the CWnd that owns the Clipboard. It is NULL if the Clipboard is not owned. �\>E6WF6- *���2���������The returned pointer may be temporary and should not be stored for later use. See Alsom7�E6�F66 <�n�2����r;Հ�������CWnd::GetClipboardViewer, ::GetClipboardOwner �bWF6WG61���������WG6�G6SJ6CWnd::GetClipboardViewerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")E�F6�G6) "�8�2�������CWnd::GetClipboardViewerR&WG6�G6, (�L�r�=���~����static CWnd* GetClipboardViewer();)�G6H6& ��2������4�G6KH6) "��2�������RemarkstGH6�H6- *���2���������Retrieves the first window in the Clipboard-viewer chain. Returns�qKH6\I6, (���2��������Identifies the window currently responsible for displaying the Clipboard. It is NULL if there is no viewer. �]�H6�I6- *���2���������The returned pointer may be temporary, and should not be stored for later use. See Alsom7\I6SJ66 <�n�2������b��������CWnd::GetClipboardOwner, ::GetClipboardViewer �a�I6�J61����������J6)K6�L6CWnd::GetCurrentMessageEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")DSJ6)K6) "�6�2�������CWnd::GetCurrentMessagea5�J6�K6, (�j�r�=���~����Protected: static const MSG* GetCurrentMessage();))K6�K6& ��2������3�K6�K6(  ��������Returns�~�K6�L6+ &����������Returns a pointer to the message the window is currently processing. Should only be called when in an OnMessage handler. �U�K6M61M��������M6LM6p�6CWnd::GetDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")7�L6LM6(  ��������CWnd::GetDC=M6�M6, (�"�r�=���~����CDC* GetDC();)LM6�M6& ��2������4�M6�M6) "��2�������Remarks��M6�6: B���2�������������Retrieves a pointer to a display context for the client area. The display context can be used in subsequent GDI functions to draw in the client area. Retrieves a common, class, or private display context depending on the class style specified for the CWnd. For common display contexts, GetDC assigns default attributes to the context each time it is retrieved. For class and private contexts, GetDC leaves the previously assigned attributes unchanged. �M6�6�L6w�M6��6X ~�?�2������M$������������������Unless the display context belongs to a window class, the ReleaseDC member function must be called to release the context after painting. Since only five common display contexts are available at any given time, failure to release a display context can prevent other applications from accessing a display context. A display context belonging to the CWnd class is returned by the GetDC member function if CS_CLASSDC, CS_OWNDC, or CS_PARENTDC were specified as a style in the WNDCLASS structure when the class was registered. 4�6��6) "��2�������Returns���6ȃ63 4���2����������Identifies the display context for the CWnd client area if the function is successful. The return value is NULL if the function is unsuccessful. The pointer may be temporary, and should not be stored for later use. 5��6��6) "��2�������See Alsos1ȃ6p�6B T�b�2�����M$������=�D�������CWnd::ReleaseDC, ::GetDC, CClientDC �`��6�61����������6D�6Ӈ6CWnd::GetDesktopWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")Cp�6D�6) "�4�2�������CWnd::GetDesktopWindowP$�6��6, (�H�r�=���~����static CWnd* GetDesktopWindow();)D�6��6& ��2������4��6�6) "��2�������Remarks����6ņ6. *�M�2���������Returns the Windows desktop window. The desktop window covers the entire screen and is the area on top of which all icons and other windows are painted. Returns�q�6\�6& ���2������Identifies the Windows desktop window. This pointer may be temporary, and should not be stored for later use. 5ņ6��6) "��2�������See AlsoB\�6Ӈ6* $�0�2��������::GetDesktopWindow �\��6`�61��������`�6��6��6CWnd::GetDlgCtrlIDEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?Ӈ6��6) "�,�2�������CWnd::GetDlgCtrlIDI`�6�6, (�:�r�=���~����int GetDlgCtrlID() const;)��6�6& ��2������4�6E�6) "��2�������Remarks��6T�6A P���2����������������Returns the the CWnd ID value if CWnd is a child window. Since top-level windows do not have an ID value, the return value of this function is invalid if the CWnd is a top-level window. Returns��E�6�63 4��2����������The numeric identifier of the CWnd child window if the function is successful. If the function fails, the return value is NULL. 5T�6C�6) "��2�������See Also>�6��6* $�(�2��������::GetDlgCtrlID �ZC�6�61���������6I�6$�6CWnd::GetDlgItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=��6I�6) "�(�2�������CWnd::GetDlgItemZ(�6��62 4�P�r�=���~������CWnd* GetDlgItem( int nID ) const;)I�6̌6& ��2������K��6�62 4�2�R�=��~Q�=�����ParameterDescriptionm>̌6��6/ .�|�R�=��~�=�����nIDSpecifies the integer ID of the item to be retrieved. 4�6��6) "��2�������Remarks�p��6p�6H ^���2����������Ԏ�����������Retrieves a pointer to the specified control in a dialog box. Can be used with any parent-child pair, not just a dialog box, as long as the child window has a unique ID (as specified by the nID parameter in the Create member function that created the child window). The pointer returned is usually cast to the type of control identified by nID. Returns���6-�62 4���2����������A pointer to the given control. If no control with the integer ID given by the nID parametep�6-�6��6r exists, the value is NULL. |Op�6��6- *���2���������The returned pointer may be temporary, and should not be stored. See Also{9-�6$�6B T�r�2������Ԏ����
�t��������CWnd::Create, CWnd::GetWindow, ::GetDlgItem �]��6��61�����������6��6z�6CWnd::GetDlgItemIntEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@$�6��6) "�.�2�������CWnd::GetDlgItemInt�[��6��6D X���r�=���~������������UINT GetDlgItemInt( int nID, BOOL* lpTrans = NULL, BOOL bSigned = TRUE ) const;)��6��6& ��2������K��6�62 4�2�R�=��~Q�=�����ParameterDescription&���6+�6@ N���R�=��~�=�������������nIDSpecifies the integer identifier of the dialog-box item to be translated. lpTransPoints to the Boolean variable that is to receive the translated flag. bSignedSpecifies whether the value to be retrieved is signed. 4�6_�6) "��2�������Remarksg&+�6��6A P�M�2����������������Translates the text of the specified control in the given dialog box into an integer value. Retrieves the text of the control identified by nID. It translates the text by stripping any extra spaces at the beginning of the text and converting decimal digits, stopping the translation when it reaches the end of the text or encounters any nonnumeric character. If bSigned is TRUE, GetDlgItemInt checks for a minus sign (-) at the beginning of the text and translates the text into a signed number. Otherwise, it creates an unsigned value. m:_�63�63 6�t�2�����������Sends a WM_GETTEXT message to the control. Returns����6.�63 4���2����������Specifies the translated value of the dialog-box item text. Since 0 is a valid return value, lpTrans must be used to detect errors. If a signed return value is desired, cast it as an int type. ��3�6�6S t�)�2����������������������Zero if the translated number is greater than 32,767 (for signed numbers) or 65,535 (for unsigned). When errors occur, such as encountering nonnumeric characters and exceeding the given maximum, GetDlgItemInt copies 0 to the location pointed to by lpTrans. If there are no errors, lpTrans receives a nonzero value. If lpTrans is NULL, GetDlgItemInt does not warn about errors. See Alsoe/.�6z�66 <�^�2���㷅����������CWnd::GetDlgItemText, ::GetDlgItemInt �^�6	�61���������	�6J�6�7CWnd::GetDlgItemTextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")Az�6J�6) "�0�2�������CWnd::GetDlgItemText�J	�6��6> L���r�=���~����������int GetDlgItemText( int nID, LPSTR lpStr, int nMaxCount ) const;)J�6��6& ��2������K��6F�62 4�2�R�=��~Q�=�����ParameterDescription�4��6��6L f�i�R�=��~�=�����������������nIDSpecifies the integer identifier of the dialog-box item whose caption or text is to be retrieved. lpStrPoints to the buffer to receive the text. nMaxCountSpecifies the maximum length (in bytes) of the string to be copied to lpStr. If the string is longer than nMaxCount, it is truncated. 4F�6��6) "��2�������Remarks!���6�6: B���2�������������Retrieves the caption or text associated with a control in a dialog box. The GetDlgItemText member function copies the text to the location pointed to by lpStr and returns a count of the number of bytes it copies. Returns�c��6��6& ���2������Specifies the actual number of bytes copied to the buffer. The value is 0 if no text is copied. 5�6��6) "��2�������See Also�S��6�7H `���2����"?:����6�7z�6���E&�Q����������CWnd::GetDlgItem, CWnd::GetDlgItemInt, ::GetDlgItemText, WM_GETTEXT �X��6	71��������	7D727CWnd::GetFocusEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");�7D7) "�$�2�������CWnd::GetFocusH	7�7, (�8�r�=���~����static CWnd* GetFocus();)D7�7& ��2������4�7�7) "��2�������Remarks�S�7o73 6���2�����������Retrieves a pointer to the CWnd that currently has the input focus. Returns�s�77, (���2��������A pointer to the window that has the current focus, or NULL if there is no focus window or an error occurred. �To7�7- *���2���������The pointer may be temporary, and should not be stored for later use. See Also�U727N l���2����r�d�����������L;Ŝ��������CWnd::GetActiveWindow, CWnd::GetCapture, CWnd::SetFocus, ::GetFocus �W�7�71X���������7�77CWnd::GetFontEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')"):27�7) "�"�2�������CWnd::GetFontA�757, (�*�r�=���~����CFont* GetFont();)�7^7& ��2������457�7) "��2�������RemarksQ$^7�7- *�H�2���������Gets the current font. ReturnsH"�7+7& �D�2������A pointer to the current font. �S�7�7- *���2���������The pointer may be temporary and should not be stored for later use. See Alsop.+77B T�\�2����ӵu���������������CWnd::SetFont, WM_GETFONT, CFont �b�7�71,���������7�7�7CWnd::GetLastActivePopupEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")E7�7) "�8�2�������CWnd::GetLastActivePopupQ%�7D7, (�J�r�=���~����CWnd* GetLastActivePopup() const;)�7m7& ��2������4D7�7) "��2�������Remarks�Vm7*	73 6���2�����������Determines which pop-up window owned by CWnd was most recently active. Returns���7�	7- (��2��������Identifies the most recently active pop-up window. The return value will be the CWnd itself if any of the following conditions are met: e-*	7I
78 @�\�R��2�h��"������CWnd itself was most recently active. e-�	7�
78 @�\�R��2�h��"������CWnd does not own any pop-up windows. }EI
7+78 @���R��2�h��"������CWnd is not a top-level window or is owned by another window. �T�
7�7, (�����������The pointer may be temporary, and should not be stored for later use. See AlsoC+7�7) "�4��������::GetLastActivePopup �W�7v71��������v7�7�7CWnd::GetMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")9�7�7(  �"�������CWnd::GetMenuGv7�7, (�6�r�=���~����CMenu* GetMenu() const;)�7
7& ��2������4�7S
7) "��2�������Remarks��
774 6��2�����������Retrieves a pointer to the the CWnd menu. This function should not be used for child windows because they do not have a menu. Returns�~S
7�78 @���2������������Identifies the menu. The value is NULL if CWnd has no menu. The return value is undefined if CWnd is a child window. �]7T7- *���2���������The returned pointer may be temporary, and should not be stored for later use. See Also9�7�7* $��2��������::GetMenu �cT7-@71��������-@7s@7HG7CWnd::GetNextDlgGroupItemEnableButton("up");ChangeButtonBinding("�7-@7�7up", "JI(`mfc10wh.hlp', `CWnd')")F�7s@7) "�:�2�������CWnd::GetNextDlgGroupItem�S-@7A7> L���r�=���~����������CWnd* GetNextDlgGroupItem( CWnd* pWndCtl, BOOL bPrevious = FALSE ) const;)s@7-A7& ��2������KA7xA72 4�2�R�=��~Q�=�����ParameterDescription�c-A7C7D V���R�=��~�=�������������pWndCtlIdentifies the control to be used as the starting point for the search. bPreviousSpecifies how the function is to search the group of controls in the dialog box. If this parameter is TRUE, the function searches for the previous control in the group. If this parameter is FALSE, the function searches for the next control in the group. 4xA7SC7) "��2�������Remarksh
C7�E7^ ���2�����6C4����6C4����������������Searches for the previous (or next) control within a group of controls in a dialog box. A group of controls begins with a control that was created with the WS_GROUP style and ends with the last control that was not created with the WS_GROUP style. By default, the GetNextDlgGroupItem member function returns a pointer to the next control in the group. If pWndCtl identifies the first control in the group and bPrevious is TRUE, GetNextDlgGroupItem returns a pointer to the last control in the group. 4SC7�E7) "��2�������Returnsa;�E7PF7& �v�2������Pointer to the previous (or next) control in the group. �]�E7�F7- *���2���������The returned pointer may be temporary, and should not be stored for later use. See Alson8PF7HG76 <�p�2�������Ā�������CWnd::GetNextDlgTabItem, ::GetNextDlgGroupItem �a�F7�G71K���������G7H78M7CWnd::GetNextDlgTabItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")DHG7H7) "�6�2�������CWnd::GetNextDlgTabItem�Q�G7�H7> L���r�=���~����������CWnd* GetNextDlgTabItem( CWnd* pWndCtl, BOOL bPrevious = FALSE ) const;)H7�H7& ��2������K�H7!I72 4�2�R�=��~Q�=�����ParameterDescription�T�H7�J7D V���R�=��~�=�������������pWndCtlIdentifies the control to be used as the starting point for the search. bPreviousSpecifies how the function is to search the dialog box. If this parameter is TRUE, the function searches for the previous control in the dialog box. If this parameter is FALSE, the function searches for the next control in the dialog box. 4!I7�J7) "��2�������Remarks���J7�K7: B�-�2�����6C4��������Retrieves a pointer to the first control that was created with the WS_TABSTOP style and precedes (or follows) the specified control. Returns�W�J7@L7, (���2��������The return value is the previous (or next) control that has the WS_TABSTOP style. �]�K7�L7- *���2���������The returned pointer may be temporary, and should not be stored for later use. See Alson8@L78M76 <�p�2�����	Ne��������CWnd::GetNextDlgGroupItem, ::GetNextDlgTabItem �]�L7�M71����������M7N7H�7CWnd::GetNextWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@8M7N7) "�.�2�������CWnd::GetNextWindown<�M7tN72 4�x�r�=���~������CWnd* GetNextWindow( UINT nFlag = GW_HWNDNEXT ) const;)N7�N7& ��2������KtN7�N72 4�2�R�=��~Q�=�����ParameterDescription���N7�O70 .�!�R�=��~�=�����nFlagSpecifies whether the function returns a pointer to the next window or the previous window. It can be either of the following values: C�N7�72 4�"�R�ۂg~Q�������ValueMeaning�O7�78M7���O7�7> J�S�R�ۂg~�������������GW_HWNDNEXTReturns the window that follows the CWnd object on the window manager's list. GW_HWNDPREVReturns the previous window on the window manager's list. 4�7'�7) "��2�������Remarks���7�7; D�S�2��������������Searches for the next (or previous) window in the window manager's list. The window manager's list contains entries for all top-level windows, their associated child windows, and the child windows of any child windows. If CWnd is a top-level window, the function searches for the next (or previous) top-level window; if CWnd is a child window, the function searches for the next (or previous) child window. ReturnstN'�7�7& ���2������Identifies the next (or the previous) window in the window manager's list. �]�7	�7- *���2���������The returned pointer may be temporary, and should not be stored for later use. See Also?�7H�7* $�*�2��������::GetNextWindow �Y	�7҄71��������� ҄7�7c�7CWnd::GetParentEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<H�7�7) "�&�2�������CWnd::GetParentH҄7V�7, (�8�r�=���~����CWnd* GetParent() const;)�7�7& ��2������4V�7��7) "��2�������Remarks`3�7�7- *�f�2���������Retrieves the parent window (if any). Returns�Y��7��72 4���2����������Identifies the parent window. The value is NULL if the CWnd has no parent window. �]�7(�7- *���2���������The returned pointer may be temporary, and should not be stored for later use. See Also;��7c�7* $�"�2��������::GetParent �[(�7�71S��������!�7-�7O�7CWnd::GetSafeHwndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>c�7-�7) "�*�2�������CWnd::GetSafeHwndI�7v�7, (�:�r�=���~����HWND GetSafeHwnd() const;)-�7��7& ��2������3v�7҈7(  ��������Returns}@��7O�7= J����������������Returns m_hWnd, or NULL if the this pointer is NULL. �\҈7܉71"��������"܉7�7�7CWnd::GetScrollPosEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>O�7�7(  �,�������CWnd::GetScrollPos[)܉7u�72 4�R�r�=���~������int GetScrollPos( int nBar ) const;)�7��7& ��2������Ku�7�72 4�2�R�=��~Q�=�����ParameterDescription�b��7z�7/ .���R�=��~�=�����nBarSpecifies the scroll bar to examine. The parameter can take one of the following values: C�7��72 4�"�R�Y��~Q�Y�����ValueMeaning�z�7Ќ7L f���R�Y��~�Y�����������������SB_CTLRetrieves the position of a scroll-bar control. SB_HORZRetrieves the position of the CWnd horizontal scroll bar. SB_VERTRetrieves the position of the CWnd vertical scroll bar. 4��7�7) "��2�������Remarks9Ќ7=�7. *��2���������Retrieves the current position of a scroll box. The current position is a relative value that depends on the current scrolling range. For example, if the scrolling range is 50 to 100 and the thumb is in the middle of the bar, the current position is 75. Returns[5�7��7& �j�2������Specifies the current position of the scroll box. 5=�7͎7) "��2�������See Also>��7�7* $�(�2��������::GetScrollPos �^͎7��71���������#��7ۏ7`�7CWnd::GetScrollRangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")A�7ۏ7) "�0�2�������CWnd::GetScrollRange�P��7u�7> L���r�=���~�ۏ7u�7�7���������void GetScrollRange( int nBar, LPINT lpMinPos, LPINT lpMaxPos ) const;)ۏ7��7& ��2������Ku�7��72 4�2�R�=��~Q�=�����ParameterDescription�b��7z�7/ .���R�=��~�=�����nBarSpecifies the scroll bar to examine. The parameter can take one of the following values: C��7��72 4�"�R�Y��~Q�Y�����ValueMeaning�z�7��7L f���R�Y��~�Y�����������������SB_CTLRetrieves the position of a scroll-bar control. SB_HORZRetrieves the position of the CWnd horizontal scroll bar. SB_VERTRetrieves the position of the CWnd vertical scroll bar. ����7��78 >�S�R�=��~�=���������lpMinPosPoints to the integer variable that is to receive the minimum position. lpMaxPosPoints to the integer variable that is to receive the maximum position. 4��7��7) "��2�������Remarks���7��7R r�i�2�����������.������������Copies the current minimum and maximum scroll-bar positions for the given scroll bar to the locations specified by lpMinPos and lpMaxPos. If CWnd does not have standard scroll bars or is not a scroll-bar control, then the GetScrollRange member function copies 0 to lpMinPos and lpMaxPos. The default range for a standard scroll bar is 0 to 100. The default range for a scroll-bar control is empty (both values are 0). 5��7 �7) "��2�������See Also@��7`�7* $�,�2��������::GetScrollRange �X �7��71���������$��7$�7��7CWnd::GetStyleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");`�7$�7) "�$�2�������CWnd::GetStyleG��7k�7, (�6�r�=���~����DWORD GetStyle() const;)$�7��7& ��2������3k�7��7(  ��������Returns<��7�7% �.������The window's style. 4��77�7(  ��������See Also^)�7��75 :�R��������������::GetWindowLong, CWnd::CreateEx �c7�7)�71T��������%)�7n�7��7CWnd::GetSuperWndProcAddrEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")E��7n�7(  �:�������CWnd::GetSuperWndProcAddrb6)�7��7, (�l�r�=���~����Protected: virtual FARPROC* GetSuperWndProcAddr();)n�7��7& ��2������3��7,�7(  ��������Returnse:��7��7+ &�t��������The original WndProc address of a subclassed window. �a,�7#�71���������&#�7f�7�7CWnd::GetSysModalWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")C��7f�7(  �6�������CWnd::GetSysModalWindowQ%#�7��7, (�J�r�=���~����static CWnd* GetSysModalWindow();)f�7��7& ��2������4��7�7) "��2�������Remarksl?��7��7- *�~�2���������Returns the system-modal window, if there is one. Returns�t�7 �7, (���2��������Identifies the system-modal window, if one is present. If no such window is present, the return value is NULL. �]��7��7- *���2���������The returned pointer may be temporary, and should not be stored for later use. See Alsol6 �7�76 <�l�2�������Kf������::GetSysModalWindow, CWnd::SetSysModalWindow �]��7��71C��������'��7��7�8CWnd::GetSystemMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@�7��7) "�.�2�������CWnd::GetSystemMenuc1��7G�72 4�b�r�=���~������CMenu* GetSystemMenu( BOOL bRevert ) const;)��7p�7& ��2������KG�7��72 4�2�R�=��~Q�=�����ParameterDescription�p�7�8X ~�g�R�=��~�=����������������7�8�7�������bRevertSpecifies the action to be taken. If bRevert is FALSE, GetSystemMenu returns a handle to a copy of the Control menu currently in use. This copy is initially identical to the Control menu, but can be modified. If bRevert is TRUE, GetSystemMenu resets the Control menu back to the default state. The previous, possibly modified, Control menu, if any, is destroyed. The return value is undefined in this case. 4��78) "��2�������Remarks]��8c8x ����2�����������;�<������By������ڀ����������}V؀����Allows the application to access the Control menu for copying and modification. Any window that does not use GetSystemMenu to make its own copy of the Control menu receives the standard Control menu. The pointer returned by GetSystemMenu member function can be used with the CMenu::AppendMenu, CMenu::InsertMenu, or CMenu::ModifyMenu functions to change the Control menu. The Control menu initially contains items identified with various ID values such as SC_CLOSE, SC_MOVE, and SC_SIZE. Menu items on the Control generate WM_SYSCOMMAND messages. All predefined Control-menu items have ID numbers greater than 0xF000. If an application adds items to the Control menu, it should use ID numbers less than F000. 5�8�8@ N���2�������H�M6��������Windows automatically dims items on the standard Control menu, depending on the situation. CWnd can carry out its own checking or dimming by responding to the WM_INITMENU messages, which are sent before any menu is displayed. Returns�yc8O8> L���2��������������Identifies a copy of the Control menu if bRevert is FALSE. If bRevert is TRUE, the return value is undefined. �]�8�8- *���2���������The returned pointer may be temporary, and should not be stored for later use. See Also�ZO8�8N l���2����;�<������By������ڀ�������CMenu::AppendMenu, CMenu::InsertMenu, CMenu::ModifyMenu, ::GetSystemMenu �\�8	81��������(	8M	898CWnd::GetTopWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?�8M	8) "�,�2�������CWnd::GetTopWindowK	8�	8, (�>�r�=���~����CWnd* GetTopWindow() const;)M	8�	8& ��2������4�	8�	8) "��2�������Remarks���	8�
8@ N�
�2���������������Searches for the top-level child window that belongs to CWnd. If CWnd has no children, this function returns NULL. Returns���	8q83 4��2����������Identifies the top-level child window in a CWnd linked list of child windows. If no child windows exist, the value is NULL. �]�
8�8- *���2���������The returned pointer may be temporary, and should not be stored for later use. See Also>q898* $�(�2��������::GetTopWindow �]�8�81�	��������)�8
8�E8CWnd::GetUpdateRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@98
8) "�.�2�������CWnd::GetUpdateRect�C�8�
8> L���r�=���~����������BOOL GetUpdateRect( LPRECT lpRect, BOOL bErase = FALSE );)
8�
8& ��2������K�
8�
82 4�2�R�=��~Q�=�����ParameterDescription��
88D V���R�=��~�=�������������lpRectPoints to a CRect or RECT structure that is to receive the client coordinates of the update enclosing the update region. bEraseSpecifies whether the background in the update region is to be erased. 4�
8M8) "��2�������Remarks�8^A8K d�u�2������������������Retrieves the coordinates of the smallest rectangle that completely encloses the update region. If CWnM8^A898d was created with the CS_OWNDC style and the mapping mode is not MM_TEXT, the GetUpdateRect member function gives the rectangle in logical coordinates. Otherwise, GetUpdateRect gives the rectangle in client coordinates. If there is no update region, GetUpdateRect sets the rectangle to be empty (sets all coordinates to 0). �]M8>D8� Ԁ��2���������������;5�΀����-{��������-{�������-{������The bErase parameter specifies whether GetUpdateRect should erase the background of the update region. If bErase is TRUE and the update region is not empty, the background is erased. To erase the background, GetUpdateRect sends the WM_ERASEBKGND message. The update rectangle retrieved by the BeginPaint member function is identical to that retrieved by the GetUpdateRect member function. The BeginPaint member function automatically validates the update region, so any call to GetUpdateRect made immediately after a call to BeginPaint retrieves an empty update region. 4^A8rD8) "��2�������Returns�x>D8E82 4���2����������Specifies the status of the update region. The value is TRUE if the update region is not empty; otherwise FALSE. 5rD8QE8) "��2�������See Alsoa+E8�E86 <�V�2����-{���������CWnd::BeginPaint, ::GetUpdateRect �\QE8?F81��������*?F8~F8�L8CWnd::GetUpdateRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?�E8~F8) "�,�2�������CWnd::GetUpdateRgn|>?F8�F8> L�|�r�=���~����������int GetUpdateRgn( CRgn* pRgn, BOOL bErase = FALSE );)~F8#G8& ��2������K�F8nG82 4�2�R�=��~Q�=�����ParameterDescription�#G8nH8> J���R�=��~�=�����������pRgnIdentifies the update region. bEraseSpecifies whether the background will be erased and nonclient areas of child windows will be drawn. If the value is FALSE, no drawing is done. 4nG8�H8) "��2�������Remarks�gnH8\J8S t���2��������-{�������-{���������Retrieves the update region into a region identified by pRgn. The coordinates of this region are relative to the upper-left corner (client coordinates). The BeginPaint member function automatically validates the update region, so any call to GetUpdateRgn made immediately after a call to BeginPaint retrieves an empty update region. Returns�|�H8�J8& ���2������Specifies a short-integer flag that indicates the type of resulting region. The value can take any one of the following: C\J8AK82 4�"�R��~Q������ValueMeaning���J89L8H ^�a�R��~������������������COMPLEXREGIONThe region has overlapping borders. ERRORNo region was created. NULLREGIONThe region is empty. SIMPLEREGIONThe region has no overlapping borders. 4AK8mL8(  ��������See Also_*9L8�L85 :�T����-{���������CWnd::BeginPaint, ::GetUpdateRgn �YmL8VM81	��������+VM8�M8(�8CWnd::GetWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");�L8�M8(  �&�������CWnd::GetWindow[)VM8�M82 4�R�r�=���~������CWnd* GetWindow( UINT nCmd ) const;)�M8N8& ��2������K�M8`N82 4�2�R�=��~Q�=�����ParameterDescription�uN8
O85 :���R�=��~�=�������nCmdSpecifies the relationship between CWnd and the returned window. It can take one of the following values: C`N8MO82 4�"�R��U~Q�������ValueMeaning>�
O8��8b ����R��U~�����������������������������GW_CHILDIdentifies the CWnd first child window. GW_HWNDFIRSTIf CWnd isMO8��8�L8 a child window, returns the first sibling window. Otherwise, it returns the first top-level window in the list. GW_HWNDLASTIf CWnd is a child window, returns the last sibling window. Otherwise, it returns the last top-level window in the list. GW_HWNDNEXTReturns the next window on the window manager's list. GW_HWNDPREVReturns the previous window on the window manager's list. _*MO8��85 :�T�R��U~���������GW_OWNERIdentifies the CWnd owner. 4��8*�8) "��2�������Remarksb(��8��8: B�Q�2�������������Searches the window manager's list for a window. The window manager's list contains entries for all top-level windows, their associated child windows, and the child windows of any child windows. The nCmd parameter specifies the relationship between CWnd and the returned window. Returns��*�8A�83 4��2����������Identifies a window. The value is NULL if the function reaches the end of the window manager's list or if nCmd is invalid. �]��8˄8- *���2���������The returned pointer may be temporary, and should not be stored for later use. See Also]'A�8(�86 <�N�2����"?:���������CWnd::GetDlgItem, ::GetWindow �[˄8��813��������,��8�8�8CWnd::GetWindowDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>(�8�8) "�*�2�������CWnd::GetWindowDCC��85�8, (�.�r�=���~����CDC* GetWindowDC();)�8^�8& ��2������45�8��8) "��2�������RemarksF^�8؈8; D��2��������������Retrieves the display context for the entire window, including caption bar, menus, and scroll bars. A window display context permits painting anywhere in CWnd, since the origin of the context is the upper-left corner of CWnd instead of the client area. Assigns default attributes to the display context each time it retrieves the context. Previous attributes are lost. Intended to be used for special painting effects within the CWnd nonclient area. Painting in nonclient areas of any window is not recommended. 
���8�8: B���2���������M$�����The GetSystemMetrics Windows function can be used to retrieve the dimensions of various parts of the nonclient area, such as the caption bar, menu, and scroll bars. After painting is complete, the ReleaseDC member function must be called to release the display context. Failure to release the display context will seriously affect painting requested by applications due to limitations on the number of  device contexts that can be open at the same time. 4؈8�8) "��2�������Returns�v�8��8, (���2��������Identifies the display context for the given window if the function is successful; otherwise, the value is NULL. �]�8B�8- *���2���������The returned pointer may be temporary, and should not be stored for later use. See Also�^��8�8T x���2�������M$������(Uc�����������::GetSystemMetrics, CWnd::ReleaseDC, ::GetWindowDC, CWnd::GetDC, CWindowDC �]B�8��81���������-��88��8CWnd::GetWindowRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@�88) "�.�2�������CWnd::GetWindowRectb0��8$�82 4�`�r�=���~������void GetWindowRect( LPRECT lpRect ) const;)8M�8& ��2������K$�8��82 4�2�R�=��~Q�=�����ParameterDescription��M�8]�8< F��R�=��~�=���������lpRectPoints to a CRect or a RECT structure that will receive the screen coordinates of the upper-left and lower-right corners. 4��8��8) "��2�������Remarksq7]�8�8: B�o�2�������������Copies the dimensions of the bounding rectangle of t��8�8�8he CWnd object to the structure pointed to by lpRect. The dimensions are given in screen coordinates, relative to the upper-left corner of the display screen. The dimensions of the caption, border, and scroll bars, if present, are included. See Also�\��8��8N l���2�����yڀ����-������\I���������CWnd::GetClientRect, CWnd::MoveWindow, CWnd::SetWindowPos, ::GetWindowRect �]�8F�81��������.F�8��8Z�8CWnd::GetWindowTextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@��8��8) "�.�2�������CWnd::GetWindowTextyAF�8��88 @���r�=���~��������int GetWindowText( LPSTR lpString, int nMaxCount ) const;)��8(�8& ��2������K��8s�82 4�2�R�=��~Q�=�����ParameterDescriptionQ(�8��8> J�'�R�=��~�=�����������lpStringPoints to the buffer that is to receive the copied string of the Window's title. nMaxCountSpecifies the maximum number of characters to be copied to the buffer. If the string is longer than the number of characters specified in nMaxCount, it is truncated. 4s�8��8) "��2�������Remarks7���8/�8F Z���2�����������������Copies the CWnd caption title (if it has one) into the buffer pointed to by lpString. If the CWnd object is a control, the GetWindowText member function copies the text within the control instead of copying the caption. Returns�k��8��8, (���2��������Specifies the length of the copied string. It is 0 if CWnd has no caption or if the caption is empty. 5/�8��8) "��2�������See Also_)��8Z�86 <�R�2�����lW��������CWnd::SetWindowText, WM_GETTEXT �c��8��81��������/��84�8�8CWnd::GetWindowTextLengthEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")FZ�84�8) "�:�2�������CWnd::GetWindowTextLengthP$��8��8, (�H�r�=���~����int GetWindowTextLength() const;)4�8��8& ��2������4��8��8) "��2�������Remarks���8��8@ N���2���������������Returns the length of the CWnd object caption title. If CWnd is a control, the GetWindowTextLength member function returns the length of the text within the control instead of the caption. Returns�s��8��8& ���2������Specifies the text length, not including any null-termination character. The value is 0 if no such text exists. 5��8��8) "��2�������See AlsoE��8�8* $�6�2��������::GetWindowTextLength �Y��8��81	��������0��8��8��8CWnd::HideCaretEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<�8��8) "�&�2�������CWnd::HideCaretA��8�8, (�*�r�=���~����void HideCaret();)��84�8& ��2������4�8h�8) "��2�������Remarks��4�8F�8M h�#�2�����*�h�������*�h��������Hides the caret by removing it from the display screen. Although the caret is no longer visible, it can be displayed again by using the ShowCaret member function. Hiding the caret does not destroy its current shape. Hiding is cumulative. If HideCaret has been called five times in a row, the ShowCaret member function must be called five times before the caret will be shown. See Also\&h�8��86 <�L�2����*�h��������CWnd::ShowCaret, ::HideCaret �^F�81�81X��������11�8r�8�9CWnd::HiliteMenuItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")A��8r�8) "�0�2�������CWnd::HiliteMenuItem�P1�89> L���r�=���~����������BOOL HiliteMenuItem( CMenu* pMenu, UINT nIDHiliteItem, UINT nHilite );r�89��8)r�859& ��2������K9�92 4�2�R�k��~Q�k�����ParameterDescriptionm59�9^ ���R�k��~�k�����������������������pMenuIdentifies the top-level menu that contains the item to be highlighted. nIDHiliteItemSpecifies the integer identifier of the menu item or the offset of the menu item in the menu, depending on the value of the nHilite parameter. nHiliteSpecifies whether the menu item is highlighted or the highlight is removed. It can be a combination of MF_HILITE or MF_UNHILITE with MF_BYCOMMAND or MF_BYPOSITION. The values can be combined using the bitwise OR operator. These values have the following meanings: C�9092 4�"�R�?�/~Q�?�����ValueMeaning�0�9�9T v�a�R�?�/~�?���������������������MF_BYCOMMANDInterprets nIDHiliteItem as the menu-item ID (the default interpretation). MF_BYPOSITIONInterprets nIDHiliteItem as an offset. MF_HILITEHighlights the item. If this value is not given, highlighting is removed from the item. MF_UNHILITERemoves highlighting from the item. 409�9) "��2�������Remarks�[�9p9- *���2���������Highlights or removes the highlighting from a top-level (menu-bar) menu item. Returns�k�9
92 4���2����������Specifies whether the menu item was highlighted. TRUE if the item was highlighted; otherwise FALSE. 5p9B9) "��2�������See Alsoc-
9�96 <�Z�2������ڀ�������CMenu::ModifyMenu, ::HiliteMenuItem �ZB9091���������209m9�
9CWnd::InvalidateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=�9m9) "�(�2�������CWnd::Invalidateg/09�98 @�^�r�=���~��������void Invalidate( BOOL bErase = FALSE );)m9�9& ��2������K�9H92 4�2�R�=��~Q�=�����ParameterDescription�V�9�9/ .���R�=��~�=�����bEraseSpecifies whether the background within the update region is to be erased. 4H9	9) "��2�������Remarks=��9>9� �_�2�������C���������X[�:�����C������������-{��������������Invalidates the entire client area of CWnd. The client area is marked for painting when the next WM_PAINT message occurs. The region can also be validated before a WM_PAINT message occurs by using the ValidateRect or ValidateRgn member function. The bErase parameter specifies whether the background within the update area is to be erased when the update region is processed. If bErase is TRUE, the background is erased when the BeginPaint member function is called; if bErase is FALSE, the background remains unchanged. If bErase is TRUE for any part of the update region, the background in the entire region is erased, not just in the given part. ��	9 
9@ N�E�2�����C�������������Windows sends WM_PAINT whenever the CWnd update region is not empty and there are no other messages in the application queue for that window. See Also�[>9�
9N l���2����-{�����X[�:�����C���������CWnd::BeginPaint, CWnd::ValidateRect, CWnd::ValidateRgn, ::InvalidateRect �^ 
9X91c	��������3X9�9G9CWnd::InvalidateRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")A�
9�9) "�0�2�������CWnd::InvalidateRect�DX99> L���r�=���~����������void InvalidateRect( LPRECT lpRect, BOOL bErase = FALSE );)�9D9& ��2������K9�92 4�2�R�=��~Q�=�����ParameterDescriptionv&D9A9P n�M�R�=��~�=�����������������lpRectPoints to a CRect or a�9A9�
9 RECT structure that contains the rectangle (in client coordinates) to be added to the update region. If lpRect is NULL, the entire client area is added to the region. bEraseSpecifies whether the background within the update region is to be erased. 4�9EA9) "��2�������Remarks-�A9rC9W |���2�������C���������X[�:�����C������Invalidates the client area within the given rectangle by adding that rectangle to the CWnd update region. The invalidated rectangle, along with all other areas in the update region, is marked for painting when the next WM_PAINT message is sent. The invalidated areas accumulate in the update region until the region is processed when the next WM_PAINT call occurs, or the region is validated by using the ValidateRect or ValidateRgn member function. �EA9wE9] ��Q�2�����������-{��������������The bErase parameter specifies whether the background within the update area is to be erased when the update region is processed. If bErase is TRUE, the background is erased when the BeginPaint member function is called; if bErase is FALSE, the background remains unchanged. If bErase is TRUE for any part of the update region, the background in the entire region is erased, not just in the given part. ��rC9YF9@ N�E�2�����C�������������Windows sends WM_PAINT whenever the CWnd update region is not empty and there are no other messages in the application queue for that window. See Also�[wE9G9N l���2����-{�����X[�:�����C���������CWnd::BeginPaint, CWnd::ValidateRect, CWnd::ValidateRgn, ::InvalidateRect �]YF9�G91_��������4�G9�G9�9CWnd::InvalidateRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@G9�G9) "�.�2�������CWnd::InvalidateRgn~@�G9NH9> L���r�=���~����������void InvalidateRgn( CRgn* pRgn, BOOL bErase = FALSE );)�G9wH9& ��2������KNH9�H92 4�2�R�=��~Q�=�����ParameterDescription�wH9�I98 >���R�=��~�=���������pRgnIdentifies the region to be added to the update region. The region is assumed to have client coordinates. bEraseSpecifies whether the background within the update region is to be erased. 4�H9�I9) "��2�������Remarks��I9L9W |���2�������C���������X[�:�����C������Invalidates the client area within the given region by adding it to the current update region of CWnd. The invalidated region, along with all other areas in the update region, is marked for painting when the WM_PAINT message is next sent. The invalidated areas accumulate in the update region until the region is processed when WM_PAINT is next sent, or the region is validated by using the ValidateRect or ValidateRgn member function. ��I9N9] ��Q�2�����������-{��������������The bErase parameter specifies whether the background within the update area is to be erased when the update region is processed. If bErase is TRUE, the background is erased when the BeginPaint member function is called; if bErase is FALSE, the background remains unchanged. If bErase is TRUE for any part of the update region, the background in the entire region is erased, not just in the given part. =�L9VO9A P���2�����C��������������Windows sends WM_PAINT whenever the CWnd update region is not empty and there are no other messages in the application queue for that window. The given region must have been previously created by using one of the region functions. See Also�ZN9�9N l���2����-{�����X[�:�����C���������CWnd::BeginPaint, CWnd::ValidateRect, CWnd::ValidateRgn, ::InvalidateRgn VO9�9G9�WVO9��912��������5��9΀9τ9CWnd::IsChildEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')"):�9΀9) "�"�2�������CWnd::IsChildY'��9'�92 4�N�r�=���~������BOOL IsChild( CWnd* pWnd ) const;)΀9P�9& ��2������K'�9��92 4�2�R�=��~Q�=�����ParameterDescription].P�9��9/ .�\�R�=��~�=�����pWndIdentifies the window to be checked. 4��9,�9) "��2�������Remarkse��9��9F Z�?�2�����������������Indicates whether the window specified by pWnd is a child window or other direct descendant of CWnd. A child window is the direct descendant of CWnd if the CWnd object is in the chain of parent windows that leads from the original pop-up window to the child window. Returns��,�9a�9? L�#�2��������������Specifies the outcome of the function. The value is TRUE if the window identified by pWnd is a child window of CWnd; otherwise FALSE. 5��9��9) "��2�������See Also9a�9τ9* $��2��������::IsChild �b��9b�91C��������6b�9��9��9CWnd::IsDlgButtonCheckedEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")Eτ9��9) "�8�2�������CWnd::IsDlgButtonCheckedg5b�9�92 4�j�r�=���~������UINT IsDlgButtonChecked( int nIDButton ) const;)��97�9& ��2������K�9��92 4�2�R�=��~Q�=�����ParameterDescriptionuF7�9��9/ .���R�=��~�=�����nIDButtonSpecifies the integer identifier of the button control. 4��9+�9) "��2�������Remarks(���9S�9: B���2�������������If the CWnd object is a button control, the IsDlgButtonChecked member function determines whether it has a check mark next to it. If it is a three-state button control, it determines if it is dimmed, checked, or neither. Returns��+�9@�9' ���2������Nonzero if the given control is checked, and 0 if it is not checked. For three-state buttons, the return value is 2 if the button is dimmed, 1 if the button is checked, and 0 if it is unchecked. 5S�9u�9) "��2�������See AlsoD@�9��9* $�4�2��������::IsDlgButtonChecked �Xu�9B�91^��������7B�9}�9��9CWnd::IsIconicEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");��9}�9) "�$�2�������CWnd::IsIconicFB�9Ê9, (�4�r�=���~����BOOL IsIconic() const;)}�9�9& ��2������4Ê9 �9) "��2�������Remarksp=�9��93 6�z�2�����������Specifies whether CWnd is minimized (iconic). Returns�m �9;�9> L���2��������������Specifies whether the CWnd object is minimized. It is TRUE if CWnd is minimized; otherwise FALSE. 5��9p�9) "��2�������See Also:;�9��9* $� �2��������::IsIconic �_p�9:�91l��������8:�9|�9��9CWnd::IsWindowEnabledEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B��9|�9) "�2�2�������CWnd::IsWindowEnabledM!:�9ɍ9, (�B�r�=���~����BOOL IsWindowEnabled() const;)|�9�9& ��2������4ɍ9&�9) "��2�������Remarks�O�9��93 6���2�����������Specifies whether CWnd is enabled for mouse and keyboard input. Returns�a&�9A�98 @���2������������Specifies whether CWnd is enabled. The value is TRUE if it is enabled; otherwise FALSE. 5��9v�9) "��2�������See AlsoAA�9��9* $�.�2��������::IsWindowEnabled �_v�9S�91K��������9S�9��9��9CWnd::IsWindowVisibleEn��9S�9��9ableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B��9��9) "�2�2�������CWnd::IsWindowVisibleM!S�9��9, (�B�r�=���~����BOOL IsWindowVisible() const;)��9�9& ��2������4��9?�9) "��2�������Remarks0��9o�9R r���2����������
�E������������Returns TRUE any time an application has made CWnd visible by using the ShowWindow member function (even if CWnd is completely covered by another child or pop-up window, the return value is TRUE). Returns�v?�9�92 4���2����������Specifies whether a given window exists on the screen. It is TRUE if it exists on the screen; otherwise FALSE. 5o�9L�9) "��2�������See Alsoc-�9��96 <�Z�2�����
�E��������CWnd::ShowWindow, ::IsWindowVisible �XL�98�91N��������:8�9s�9��9CWnd::IsZoomedEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");��9s�9) "�$�2�������CWnd::IsZoomedF8�9��9, (�4�r�=���~����BOOL IsZoomed() const;)s�9��9& ��2������4��9�9) "��2�������Remarksn;��9��93 6�v�2�����������Determines whether CWnd has been maximized. Returns�e�9!�98 @���2������������Specifies whether CWnd is maximized. The value is TRUE if it is maximized; otherwise FALSE. 5��9V�9) "��2�������See Also:!�9��9* $� �2��������::IsZoomed �YV�9�917��������;�9V�9\�9CWnd::KillTimerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<��9V�9) "�&�2�������CWnd::KillTimerW%�9��92 4�J�r�=���~������BOOL KillTimer( int nIDEvent );)V�9��9& ��2������K��9!�92 4�2�R�=��~Q�=�����ParameterDescription}B��9��9; F���R�=��~�=������������nIDEventThe value of the timer event passed to SetTimer. 4!�9��9) "��2�������Remarks���9��9L f���2��������������q4���������Kills the timer event identified by nIDEvent from the earlier call to SetTimer. Any pending WM_TIMER messages associated with the timer are removed from the message queue. Returns����9��99 @�e�2������������Specifies the outcome of the function. The value is TRUE if the event was killed. It is FALSE if the KillTimer member function could not find the specified timer event. 5��9�9) "��2�������See Also[%��9\�96 <�J�2���������������CWnd::SetTimer, ::KillTimer �Z�9��91���������<��9$�9w:CWnd::MessageBoxEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=\�9$�9) "�(�2�������CWnd::MessageBox�i��9��9> L���r�=���~����������int MessageBox( const char FAR* lpText, const char FAR* lpCaption = NULL, UINT nType = MB_OK );)$�9��9& ��2������K��9?�92 4�2�R�=��~Q�=�����ParameterDescription�l��9�9X ~���R�=��~�=���������������������lpTextPoints to a CString or null-terminated string containing the message to be displayed. lpCaptionPoints to a CString or null-terminated string to be used for the message-box caption. If lpCaption is NULL, the default caption "Error" is used. nTypeSpecifies the contents of the message box. It can be a combination of the following values: C?�9F�92 4�"�R�Ճk}Q�������ValueMeaningN��9�:^ ����R�Ճk}�������������������������MB_ABORTRETRYIGNOREMessage box contains three push buttons: Abort, Retry, and Ignore. MF�9�:\�9B_APPLMODALThe user must respond to the message box before continuing work in the CWnd. However, the user can move to the windows of other applications and work in those windows. MB_APPLMODAL is the default if MB_SYSTEMMODAL is not specified. MB_DEFBUTTON1First button is the default. Note that the first button is always the default unless MB_DEFBUTTON2 or MB_DEFBUTTON3 is specified. !�F�9�:` ����R�Ճk}�������������������������������MB_DEFBUTTON2Second button is the default. MB_DEFBUTTON3Third button is the default. MB_ICONEXCLAMATIONAn exclamation-point icon appears in the message box. MB_ICONINFORMATIONAn icon consisting of a lowercase "i" in a circle appears in the message box. MB_ICONQUESTIONA question-mark icon appears in the message box. MB_ICONSTOPA stop-sign icon appears in the message box. MB_OKMessage box contains one push button: OK. �s�:z:F Z���R�Ճk}�����������������MB_OKCANCELMessage box contains two push buttons: OK and Cancel. MB_RETRYCANCELMessage box contains two push buttons: Retry and Cancel. MB_SYSTEMMODALAll applications are suspended until the user responds to the message box. Unless the application specifies MB_ICONSTOP, the message box does not become modal until after it is created; consequently, the parent window and other windows continue to receive messages resulting from its activation. System-modal message boxes are used to notify the user of serious, potentially damaging errors that require immediate attention (for example, running out of memory). ���:B:8 >�!�R�Ճk}�����������MB_YESNOMessage box contains two push buttons: Yes and No. MB_YESNOCANCELMessage box contains three push buttons: Yes, No, and Cancel. 4z:v:) "��2�������Remarks�B:�
:M h���2��������������������Creates and displays a window that contains an application-supplied message and caption, plus a combination of the predefined icons and push buttons described in the preceding list. When a system-modal message box is created to indicate that the system is low on memory, do not take the strings passed as lpText and lpCaption from a resource file, since an attempt to load the resource may fail. When an application calls the MessageBox member function and specifies the MB_ICONSTOP and MB_SYSTEMMODAL flags for nType, Windows will display the resulting message box regardless of available memory. When these flags are specified, Windows limits the length of the message-box text to one line. 4v:�
:) "��2�������Returns���
:�:' ��2������Specifies the outcome of the function. It is 0 if there is not enough memory to create the message box. Otherwise, it is one of the following menu-item values returned by the message box: C�
:�:2 4�"�R�k��~Q�k�����ValueMeaning5��:
:` ����R�k��~�k�����������������������������IDABORTAbort button pressed IDCANCELCancel button pressed IDIGNOREIgnore button pressed IDNONo button pressed IDOKOK button pressed IDRETRYRetry button pressed IDYESYes button pressed !��:<:? L�����������������If a message box has a Cancel button, the IDCANCEL value will be returned if either the ESC key or the Cancel button is pressed. If the message box has no Cancel button, pressing the ESC key has no effect. See Also;
:w:) "�$��������::MessageBox �Z<::1q��������=:>:uF:CWnd::MoveWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<w:>:(  �(�������CWnd::MoveWindow	�:S@:j ��?�r�=���~�������������������������void MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE>:S@:w: );void MoveWindow( LPRECT lpRect, BOOL bRepaint = TRUE );)>:|@:& ��2������KS@:�@:2 4�2�R�=��~�=�����ParameterDescription$�|@:�B:j ��u�R�=��~�=�������������������������������xSpecifies the new position of the left side of the window. ySpecifies the new position of the top of the window. nWidthSpecifies the new width of the window. nHeightSpecifies the new height of the window. bRepaintSpecifies whether the window is to be repainted. If this parameter is TRUE, the window is repainted. This is set by default. lpRectThe CRect or RECT structure specifying the new size and position. 4�@:C:) "��2�������Remarks�\�B:�E:e ����2�����������������e�������������Changes the position and dimensions. For a top-level CWnd object, the x and y parameters are relative to the upper-left corner of the screen. For a child CWnd object, they are relative to the upper-left corner of the parent window's client area. The MoveWindow function sends WM_GETMINMAXINFO. This gives CWnd the opportunity to modify the default values for the largest and smallest possible windows. If the parameters to the MoveWindow member function exceed these values, the values will be replaced by the minimum or maximum values specified in the WM_GETMINMAXINFO message. 5C:F:) "��2�������See Also`*�E:uF:6 <�T�2����\I���������CWnd::SetWindowPos, ::MoveWindow �ZF:G:18��������>G:=G:DM:CWnd::OnActivateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=uF:=G:) "�(�2�������CWnd::OnActivate�SG:�G:> L���r�=���~����������afx_msg void OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized );)=G:�G:& ��2������K�G:BH:2 4�2�R�=��~Q�=�����ParameterDescription�\�G:�I:^ ����R�=��~�=�����������������������nStateIndicates the minimized state of the window being activated or deactivated. A nonzero value indicates that the CWnd object is minimized. pWndOtherPointer to the CWnd being activated or deactivated. The pointer can be NULL, and it may be temporary. bMinimizedIf TRUE, the CWnd is being activated; otherwise deactivated. 4BH:0J:) "��2�������RemarksD��I:tL:_ ����2��������������eg������L��������Called when a CWnd object is being activated or deactivated. First, the main window being deactivated has OnActivate called, and then the main window being activated has OnActivate called. If the CWnd object is activated with a mouse click, it will also receive an OnMouseActivate member function call. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_ACTIVATE message. 50J:�L:) "��2�������See Also�MtL:DM:N l���2����eg�����i|�܀���L���������WM_MOUSEACTIVATE, WM_NCACTIVATE, CWnd::Default, WM_ACTIVATE �]�L:�M:1���������?�M:N:��:CWnd::OnActivateAppEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@DM:N:) "�.�2�������CWnd::OnActivateAppyA�M:�N:8 @���r�=���~��������afx_msg void OnActivateApp( BOOL bActive, HANDLE hTask );)N:�N:& ��2������K�N:�N:2 4�2�R�=��~Q�=�����ParameterDescription��N:�:z €
�R�=��~�=�������������������������������bActiveSpecifies whether the CWnd is being activated or deactivated. TRUE means the CWnd is being activated. FALSE means the�N:�:DM: CWnd is being deactivated. hTaskSpecifies a task handle. If bActive is TRUE, the handle identifies the task that owns the CWnd being deactivated. If bActive is FALSE, the handle identifies the task that owns the CWnd being activated. 4�N:?�:) "��2�������Remarks
��:L�:S t�u�2������������L�����������Called when CWnd is about to be activated and CWnd belongs to a different task than the currently active window. OnActivateApp is called for all top-level windows of the task being activated, and for all top-level windows of the task being deactivated. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_ACTIVATEAPP message. See Also]'?�:��:6 <�N�2����L���������CWnd::Default, WM_ACTIVATEAPP �aL�:;�:19��������@;�:�:��:CWnd::OnAskCbFormatNameEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")D��:�:) "�6�2�������CWnd::OnAskCbFormatName�I;�:�:8 @���r�=���~��������afx_msg void OnAskCbFormatName( UINT nMaxCount, LPSTR lpString );)�:)�:& ��2������K�:t�:2 4�2�R�=��~Q�=�����ParameterDescription��)�:=�:8 >�#�R�=��~�=���������nMaxCountSpecifies the maximum number of bytes to copy. lpStringPoints to the buffer where the copy of the format name is to be stored. 4t�:q�:) "��2�������Remarks�-=�:�:S t�[�2�����z�������z�������L��������Called when the Clipboard contains a data handle for the CF_OWNERDISPLAY format (that is, when the Clipboard owner will display the Clipboard contents) and the Clipboard owner should provide a name for its format. Override this member function and copy the name of the CF_OWNERDISPLAY format into the specified buffer, not exceeding the maximum number of bytes specified. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_ASKCBFORMATNAME message. 5q�:&�:) "��2�������See Alsoa+�:��:6 <�V�2����L���������CWnd::Default, WM_ASKCBFORMATNAME �\&�:�:1���������A�:S�:܍:CWnd::OnCancelModeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?��:S�:) "�,�2�������CWnd::OnCancelModeL �:��:, (�@�r�=���~����afx_msg void OnCancelMode();)S�:Ȋ:& ��2������4��:��:) "��2�������Remarks5�Ȋ:1�:_ ����2������������L�������L���������If the CWnd object has the focus, its OnCancelMode member function is called when a dialog box or message box is displayed. This gives the CWnd the opportunity to cancel modes such as mouse capture. Calls the Default member function, which responds by calling the ReleaseCapture Windows function. The Default member function does not cancel any other modes. Override this member function in your derived class to handle the WM_CANCELMODE message. 5��:f�:) "��2�������See Alsov:1�:܍:< H�t�2����L�����������CWnd::Default, ::ReleaseCapture, WM_CANCELMODE �_f�:l�:1���������Bl�:��:��:CWnd::OnChangeCbChainEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B܍:��:) "�2�2�������CWnd::OnChangeCbChain�Hl�:.�:8 @���r�=���~��������afx_msg void OnChangeCbChain( HWND hWndRemove, HWND hWndAfter );)��:W�:& ��2������K.�:��:2 4�2�R�[��~Q�[�����ParameterDescription
�W�:��:8 >���R�[��~�[���������hWndRemoveSpecifies the window hand��:��:܍:le that is being removed from the Clipboard-viewer chain. hWndAfterSpecifies the window handle that follows the window being removed from the Clipboard-viewer chain. 4��:��:) "��2�������RemarksY��:E�:X ~��2����������������3���������Called for each window in the Clipboard-viewer chain to notify it that a window is being removed from the chain. Each CWnd object that receives an OnChangeCbChain call should use the SendMessage Windows function to send the WM_CHANGECBCHAIN message to the next window in the Clipboard-viewer chain (the handle returned by SetClipboardViewer). If hWndRemove is the next window in the chain, the window specified by hWndAfter becomes the next window, and Clipboard messages are passed on to it. ����:=�:@ N�q�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_CHANGECBCHAIN message. See Also�FE�:��:B T���2���ぜ�������L�������CWnd::ChangeClipboardChain, ::SendMessage, CWnd::Default �V=�:L�:1�
��������CL�:��:;CWnd::OnCharEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")9��:��:) "� �2�������CWnd::OnChar�GL�:
�:> L���r�=���~����������afx_msg void OnChar( UINT nChar, UINT nRepCnt, UINT nFlags );)��:3�:& ��2������K
�:~�:2 4�2�R�=��~Q�=�����ParameterDescription�3�:��:@ N���R�=��~�=�������������nCharContains the value of the key. nRepCntContains the repeat count. nFlagsContains the scan code, key-transition code, previous key state, and context code, as shown in the following list: G~�:��:2 4�*�R��?Q������ValueDescription����:��:= H�g�R��?�����������������0-7Scan code (OEM-dependent value). 8Extended key, such as a function key or a key on the numeric keypad (1 if it is an extended key). 11-12Used internally by Windows. 13Context code (1 if the ALT key is held down while the key is pressed, 0 otherwise). 14Previous key state (1 if the key is down before the call, 0 if the key is up). 15Transition state (1 if the key is being released, 0 if the key is being pressed). 4��:��:) "��2�������Remarks���:��:v ��+�2�����YpZ������ *�������������YpZ������ *�������Called before the OnKeyUp member function and after the OnKeyDown member function are called. OnChar contains the value of the keyboard key being pressed or released. Since there is not necessarily a one-to-one correspondence between keys pressed and OnChar calls generated, the information in nFlags is generally not useful to applications. The information in nFlags applies only to the most recent call to the OnKeyUp member function or the OnKeyDown member function that precedes the call to OnChar. �0��:,�:| ƀa�2����������������������������L��������For IBM Enhanced 101- and 102-key keyboards, enhanced keys are the right ALT and the right CONTROL keys on the main section of the keyboard; the INS, DEL, HOME, END, PAGE UP, PAGE DOWN, and ARROW keys in the clusters to the left of the numeric keypad; and the slash (/) and ENTER keys in the numeric keypad. Some other keyboards may support the extended-key bit in nFlags. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_CHAR message. 5��:a�:) "��2�������See Also�>,�:;N l�|�2����L�������� *����YpZ�������CWnd::Default, WM_CHAR, WM_KEYDOWN, WM_KEYUP a�:;��:�\a�:�;1��������D�;�;�;CWnd::OnCharToItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?;�;) "�,�2�������CWnd::OnCharToItem�N�;d;> L���r�=���~����������afx_msg int OnCharToItem( UINT nChar, CWnd* pListBox, UINT nIndex );)�;�;& ��2������Kd;�;2 4�2�R�=��~Q�=�����ParameterDescription���;�;@ N�i�R�=��~�=�������������nCharSpecifies the value of the key pressed by the user. pListBoxSpecifies a pointer to the list box. It may be temporary. nIndexSpecifies the current caret position. 4�;;) "��2�������Remarks�r�;�;k ����2�����pCC������3(����������L�����������A list box with the LBS_WANTKEYBOARDINPUT style sends its owner a WM_CHARTOITEM message in response to a WM_CHAR message. WM_CHARTOITEM is handled by default by OnCharToItem. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_CHARTOITEM message. Returns$�;;' ���2������Specifies the action that the application performed in response to the call. A return value of -2 indicates that the application handled all aspects of selecting the item and wants no further action by the list box. A return value of -1 indicates that the list box will perform the default action in response to the keystroke. A return value of 0 or greater specifies the index of an item in the list box and indicates that the list box will perform the default action for the keystroke on the given item. 5�;6;) "��2�������See Alsou3;�;B T�f�2����L�����3(���������CWnd::Default, WM_CHAR, WM_CHARTOITEM �_6;;;1���������E;;};J;CWnd::OnChildActivateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B�;};) "�2�2�������CWnd::OnChildActivateO#;;�;, (�F�r�=���~����afx_msg void OnChildActivate();)};�;& ��2������4�;)	;) "��2�������Remarks2�;�
;M h�e�2����������L�����������If the CWnd object is a child window, OnChildActivate is called whenever the size or position of the window changes. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_CHILDACTIVATE message. See Also�T)	;J;N l���2����\I�����;P��������L�������CWnd::SetWindowPos, CWnd::OnClose, WM_CHILDACTIVATE, CWnd::Default �W�
;�;1e��������F�;;@;CWnd::OnCloseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')"):J;;) "�"�2�������CWnd::OnCloseG�;S;, (�6�r�=���~����afx_msg void OnClose(););|;& ��2������4S;�;) "��2�������Remarks��|;�;Y ��A�2���������I`t�����L�����������Called as a signal that the CWnd or an application is to terminate. An application can prompt the user for confirmation and destroy the CWnd object by calling the DestroyWindow member function only if the user confirms the choice. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_CLOSE message. See Also�O�;@;H `���2����I`t��������L�������CWnd::DestroyWindow, ::PostQuitMessage, WM_CLOSE, CWnd::Default �Y�;�;1���������G�;@;JH;CWnd::OnCommandEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<@;@;) "�&�2�������CWnd::OnComm�;@;@;ands;�;�@;8 @�v�r�=���~��������virtual BOOL OnCommand( UINT wParam, LONG lParam );)@;�@;& ��2������K�@;�@;2 4�2�R�=��~Q�=�����ParameterDescription���@;�B;8 >�M�R�=��~�=���������wParamIdentifies the menu item or control. lParamSpecifies additional information. If the message is from a menu, the low-order word and the high-order word are both 0. If the message is from an accelerator, the low-order word is 0 and the high-order word is 1. If the message is from a control, the low-order word is the handle of the window sending the message and the high-order word is the notification code. 4�@;C;) "��2�������Remarks�?�B;�E;_ ���2����������}V؀���������������Called when the user selects an item from a CWnd menu, when a child control sends a notification message to CWnd, or when an access keystroke is translated. Access keystrokes that are defined to select items from the Control menu are translated to WM_SYSCOMMAND messages. If an access keystroke that corresponds to a menu item occurs when the CWnd is minimized, OnCommand is not called. However, if an access keystroke that does not match any of the items on the CWnd menu or on the Control menu occurs, OnCommand is called, even if CWnd is minimized. �EC;8G;J b���2�������{������������OnCommand processes the message map for control notification and ON_COMMAND entries, and calls the appropriate member function. Override this member function in your derived class to handle the WM_COMMAND message. An override will not process the message map unless the base class OnCommand is called. Returns�R�E;�G;2 4���2����������An application returns TRUE if it processes this message; otherwise FALSE. 58G;�G;) "��2�������See AlsoY#�G;JH;6 <�F�2����}V؀�������WM_SYSCOMMAND, WM_COMMAND �\�G;�H;1���������H�H;I;�N;CWnd::OnCompactingEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?JH;I;) "�,�2�������CWnd::OnCompactingc1�H;yI;2 4�b�r�=���~������afx_msg void OnCompacting( UINT nCpuTime );)I;�I;& ��2������KyI;�I;2 4�2�R�=��~Q�=�����ParameterDescription���I;�J;0 .�#�R�=��~�=�����nCpuTimeSpecifies the ratio of CPU time currently spent by Windows compacting memory. For example, 8000h represents 50 percent of CPU time. 4�I;�J;) "��2�������RemarksD�J;&M;4 6�!�2�����������Called for all top-level windows when Windows detects that more than 12.5 percent of system time over a 30- to 60-second interval is being spent compacting memory. This indicates that system memory is low. When a CWnd object receives this call, it should free as much memory as possible, taking into account the current level of activity of the application and the total number of applications running in Windows. The application can call the GetNumTasks Windows function to determine how many applications are running. ���J;N;@ N�k�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_COMPACTING message. See Alsos7&M;�N;< H�n�2������L���������::GetNumTasks, CWnd::Default, WM_COMPACTING �]N;O;1���������IO;\O;��;CWnd::OnCompareItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@�N;\O;) "�.�2�������CWnd::OnCompareItem~LO;�O;2 4���r�=���~������afx_msg int OnCompareItem ( LPCOMPAREITEMSTRUCT lpCompareItemStruct );)\O;�;& ��2�������O;�;�N;K�O;Z�;2 4�2�R��)~Q�������ParameterDescription���;T�;< F�}�R��)~������Qp�\�����lpCompareItemStructContains a long pointer to a COMPAREITEMSTRUCT data structure that contains the identifiers and application-supplied data for two items in the combo or list box. 4Z�;��;) "��2�������Remarks�2T�; �;f ��e�2���������Kjz̀���pCC���������Qp�\�������Override this member function in your derived class to handle the WM_COMPAREITEM message. Use the overridden member function to specify the relative position of a new item in a sorted owner-draw combo or list box. If a combo or list box is created with the CBS_SORT or LBS_SORT style, Windows sends the combo-box or list-box owner a WM_COMPAREITEM message whenever the application adds a new item. The lpCompareItemStruct parameter is a long pointer to a COMPAREITEMSTRUCT data structure that contains the identifiers and application-supplied data for two items in the combo or list box. OnCompareItem should return a value indicating which of the items should appear before the other. Typically, Windows makes this call several times until it determines the exact position for the new item. �Y��;��;9 B���2�����L���������This message-handler member function calls the Default member function. Returns�\ �;4�;& ���2������Indicates the relative position of the two items. It may be any of the following values: B��;v�;1 2�"�R�݀?Q�܀����ValueMeaning�d4�;	�;/ .���R�݀?�܀�������-1Item 1 sorts before item 2. 0Item 1 and item 2 sort the same. 1Item 1 sorts after item 2. 4v�;=�;(  ��������See Also>	�;��;A R�|����Qp�\������L�������COMPAREITEMSTRUCT, WM_COMPAREITEM, CWnd::Default �X=�;E�;1��������JE�;�;a�;CWnd::OnCreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')"):��;�;(  �$�������CWnd::OnCreaten<E�;�;2 4�x�r�=���~������afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );)�;�;& ��2������K�;a�;2 4�2�R�a��~Q�a�����ParameterDescription�x�;�;A R���R�a��~�a����I���������lpCreateStructPoints to a CREATESTRUCT structure containing information about the CWnd object being created. 4a�;N�;) "��2�������Remarks��;Y�;p ��7�2���������Ԏ����������������\僭������������Called when an application requests that the CWnd object be created by calling the Create or CreateEx member function. The new CWnd object receives this call after the CWnd object is created but before it becomes visible. OnCreate is called before the Create or CreateEx member function returns. Override this member function to perform any needed initialization of a derived class. Z
N�;��;M h��2�����I�������L�����������The CREATESTRUCT structure contains copies of the parameters used to create the window. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_CREATE message. Returns��Y�;p�;6 :��2�����������OnCreate must return 0 to continue the creation of the CWnd object. If the application returns -1, the CWnd will be destroyed. 5��;��;) "��2�������See Also�bp�;a�;Z ����2�����������@������L�����Z�?������CWnd::CreateEx, CWnd::OnNcCreate, WM_CREATE, CWnd::Default, CWnd::FromHandle �Z��;�;1n	��������K�;I�;|�;CWnd::OnCtlColorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")a�;�;a�;=a�;I�;) "�(�2�������CWnd::OnCtlColor�L�;��;> L���r�=���~����������afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor );)I�;��;& ��2������K��;G�;2 4�2�R�=��~Q�=�����ParameterDescription5���;|�;F Z���R�=��~�=���������������pDCContains a pointer to the display context for the child window. May be temporary. pWndContains a pointer to the child CWnd. May be temporary. nCtlColorContains one of the following values, specifying the type of control: CG�;��;2 4�"�R����}Q�������ValueMeaningH�|�;�;` ����R����}�������������������������������CTLCOLOR_BTNButton control CTLCOLOR_DLGDialog box CTLCOLOR_EDITEdit control CTLCOLOR_LISTBOXList box control CTLCOLOR_MSGBOXMessage box CTLCOLOR_SCROLLBARScroll-bar control CTLCOLOR_STATICStatic control 4��;;�;) "��2�������Remarks���;��;- (��2��������Called when a child system-defined control class or a message box is about to be drawn. The following controls call OnCtlColor: ~N;�;k�;0 0���R�_��~�_��������Combo boxesButtons Edit controlsStatic controls List boxesScroll bars ���;��;j ��9���������������8�Հ����8�Հ����L��������To change the background color of a single-line edit control, you must set the brush handle in both the CTLCOLOR_EDIT and CTLCOLOR_MSGBOX message codes, as well as calling the SetBkColor Windows function in response to the CTLCOLOR_EDIT code. The return value from the function has no effect on a button with the BS_PUSHBUTTON or BS_DEFPUSHBUTTON style. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_CTLCOLOR message. 3k�;$�;(  ��������Returns����;��;/ ,����������OnCtlColor must return a handle to the brush that is to be used for painting the control background, or it must return NULL. 4$�;
�;(  ��������See Alsor7��;|�;; F�n��������L�������CDC::SetBkColor, WM_CTLCOLOR, CWnd::Default �Z
�;�;1�
��������L�;C�;�<CWnd::OnDeadCharEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<|�;C�;(  �(�������CWnd::OnDeadChar�K�;��;> L���r�=���~����������afx_msg void OnDeadChar( UINT nChar, UINT nRepCnt, UINT nFlags );)C�;��;& ��2������K��;@�;2 4�2�R�=��~Q�=�����ParameterDescription���;W�;@ N���R�=��~�=�������������nCharSpecifies the dead-key character value. nRepCntSpecifies the repeat count. nFlagsSpecifies the scan code, key-transition code, previous key state, and context code, as shown in the following list: G@�;��;2 4�*�R��?Q������ValueDescription,�W�;��;? L���R��?�������������������0-7Scan code (OEM-dependent value). Low byte of high-order word. 8Extended key, such as a function key or a key on the numeric keypad (1 if it is an extended key, 0 otherwise). 9-10Not used. 11-12Used internally by Windows. 13Context code (1 if the ALT key is held down while the key is pressed, 0 otherwise). 14Previous key state (1 if the key is down before the call, 0 if the key is up). 15Transition state (1 if the key is being released, 0 if the key is being pressed). 4��;��;) "��2�������Remarks�[��;�<L f���2�����YpZ������ *����������Called when the OnKeyUp member function and the OnKeyDown member functions are called. This member function can be used to specify the character value of a dead key. A dead ��;�<|�;key is a key, such as the umlaut (double-dot) character, that is combined with other characters to form a composite character. For example, the umlaut-O character consists of the dead key, umlaut, and the O key. An application typically uses OnDeadChar to give the user feedback about each key pressed. For example, an application can display the accent in the current character position without moving the caret. ����;5<� ���2�����������YpZ������ *������������������������������Since there is not necessarily a one-to-one correspondence between keys pressed and OnDeadChar calls, the information in nFlags is generally not useful to applications. The information in nFlags applies only to the most recent call to the OnKeyUp member function or the OnKeyDown member function that precedes the OnDeadChar call. For IBM Enhanced 101- and 102-key keyboards, enhanced keys are the right ALT and the right CONTROL keys on the main section of the keyboard; the INS, DEL, HOME, END, PAGE UP, PAGE DOWN, and ARROW keys in the clusters to the left of the numeric keypad; and the slash (/) and ENTER keys in the numeric keypad. Some other keyboards may support the extended-key bit in nFlags. ���<(<@ N�g�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_DEADCHAR message. See AlsoZ$5<�<6 <�H�2����L���������CWnd::Default, WM_DEADCHAR �\(<<1m��������M<N<�<CWnd::OnDeleteItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?�<N<) "�,�2�������CWnd::OnDeleteItem{I<�<2 4���r�=���~������afx_msg void OnDeleteItem( LPDELETEITEMSTRUCT lpDeleteItemStruct );)N<�<& ��2������K�<=<2 4�2�R���]~Q�������ParameterDescription���<
	<< F�)�R���]~������7�������lpDeleteItemStructSpecifies a long pointer to a DELETEITEMSTRUCT data structure that contains information about the deleted list box item. 4=<A	<) "��2�������Remarks�
	<V<j ��W�2�����48������*b͆����v��^����l�'<�����L��������Called to inform the owner of an owner-draw list box or combo box that the list box or combo box is destroyed or that items are removed by CComboBox::DeleteString, CListBox::DeleteString, CComboBox::ResetContent, or CListBox::ResetContent. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_DELETEITEM message. 5A	<�<) "��2�������See Also��V<�<g ��1�2����48������*b͆����v��^����l�'<����L���������CComboBox::DeleteString, CListBox::DeleteString, CComboBox::ResetContent, CListBox::ResetContent, CWnd::Default, WM_DELETEITEM �Y�<
<1���������N
<P
<�B<CWnd::OnDestroyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<�<P
<) "�&�2�������CWnd::OnDestroyI
<�
<, (�:�r�=���~����afx_msg void OnDestroy();)P
<�
<& ��2������4�
<�
<) "��2�������Remarks#��
<%@<q ��e�2��������������������������������Called to inform the CWnd that it is being destroyed. OnDestroy is called after the CWnd object is removed from the screen. OnDestroy is called first for the CWnd being destroyed, then for the child windows of CWnd as they are destroyed. It can be assumed that all child windows still exist while OnDestroy runs. If the CWnd is the main window (CWinApp's m_pMainWnd) then OnDestroy ca�
<%@<�<lls PostQuitMessage. �<�
<�A<X ~�y�2���������3�����ぜ�����������If the CWnd object being destroyed is part of the Clipboard-viewer chain (set by calling the SetClipboardViewer member function), the CWnd must remove itself from the Clipboard-viewer chain by calling the ChangeClipboardChain member function before returning from the OnDestroy function. See Also�|%@<�B<T x���2���ぜ�����I`t��������3��������CWnd::ChangeClipboardChain, CWnd::DestroyWindow, ::PostQuitMessage, CWnd::SetClipboardViewer, WM_DESTROY �b�A<C<1���������OC<aC<F<CWnd::OnDestroyClipboardEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")E�B<aC<) "�8�2�������CWnd::OnDestroyClipboardR&C<�C<, (�L�r�=���~����afx_msg void OnDestroyClipboard();)aC<�C<& ��2������4�C<D<) "��2�������Remarksy2�C<�E<G \�e�2��������L�����������Called for the Clipboard owner when the Clipboard is emptied through a call to the EmptyClipboard Windows function. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_DESTROYCLIPBOARD message. See Also|@D<F<< H���2������L���������::EmptyClipboard, CWnd::Default, WM_DESTROYCLIPBOARD �_�E<�F<1���������P�F<�F<'J<CWnd::OnDevModeChangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")BF<�F<) "�2�2�������CWnd::OnDevModeChangek9�F<BG<2 4�r�r�=���~������afx_msg void OnDevModeChange( LPSTR lpDeviceName );)�F<kG<& ��2������KBG<�G<2 4�2�R�s��~Q�s�����ParameterDescription�bkG<GH</ .���R�s��~�s�����lpDeviceNamePoints to the device name specified in the Windows initialization file, WIN.INI. 4�G<{H<) "��2�������RemarksMGH<�I<G \�
�2��������L�����������Called for all top-level CWnds when the user changes device-mode settings. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_DEVMODECHANGE message. See Also_){H<'J<6 <�R�2����L���������CWnd::Default, WM_DEVMODECHANGE �_�I<�J<1X��������Q�J<�J<,�<CWnd::OnDrawClipboardEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B'J<�J<) "�2�2�������CWnd::OnDrawClipboardO#�J<HK<, (�F�r�=���~����afx_msg void OnDrawClipboard();)�J<qK<& ��2������4HK<�K<) "��2�������Remarks�[qK<^N<^ ����2�������3�������������3�����L€����Called for each window in the Clipboard-viewer chain when the contents of the Clipboard change. Only applications that have joined the Clipboard-viewer chain by calling the SetClipboardViewer member function need to respond to this call. Each window that receives an OnDrawClipboard call should call the SendMessage Windows function to pass a WM_DRAWCLIPBOARD message on to the next window in the Clipboard-viewer chain. The handle of the next window is returned by the SetClipboardViewer member function; it may be modified in response to an OnChangeCbChain member function call. ���K<VO<@ N�q�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_DRAWCLIPBOARD message. See Also�p^N<,�<Z ����2�����'-������3�����L€�����L�������::SendMessage, CWnd::SetClipboardViewer, WM_CHANGECBCHAIN, WM_DRAWCVO<,�<'J<LIPBOARD, CWnd::Default �ZVO<��<1A��������R��<�<�<CWnd::OnDrawItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=,�<�<) "�(�2�������CWnd::OnDrawItemuC��<i�<2 4���r�=���~������afx_msg void OnDrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );)�<��<& ��2������Ki�<݁<2 4�2�R���y~Q�������ParameterDescription����<ł<< F�Y�R���y~������X��Ā����lpDrawItemStructSpecifies a long pointer to a DRAWITEMSTRUCT data structure that contains information about the item to be drawn and the type of drawing required. 4݁<��<) "��2�������Remarks�Cł<��<M h���2��������X��Ā������X��Ā����Called for the owner of an owner-draw button control, combo-box control, list-box control, or menu when a visual aspect of the control or menu has changed. The itemAction member of the DRAWITEMSTRUCT structure defines the drawing operation that is to be performed. The data in this member allows the owner of the control to determine what drawing action is required. Before returning from processing this message, an application should ensure that the device context identified by the hDC member of the DRAWITEMSTRUCT structure is restored to the default state. ����<h�<@ N�?�2�����L�����������This message-handler member function calls Default. Override this member function in your derived class to handle the WM_DRAWITEM message. See Also�N��<�<N l���2����X��Ā���L�������Z�?������DRAWITEMSTRUCT, CWnd::Default, WM_DRAWITEM, CWnd::FromHandle �Xh�<��<1��������S��<ȇ<��<CWnd::OnEnableEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");�<ȇ<) "�$�2�������CWnd::OnEnable^,��<&�<2 4�X�r�=���~������afx_msg void OnEnable( BOOL bEnable );)ȇ<O�<& ��2������K&�<��<2 4�2�R�=��~Q�=�����ParameterDescription��O�<��<N j�_�R�=��~�=���������������bEnableSpecifies whether the CWnd has been enabled or disabled. This parameter is TRUE if the CWnd has been enabled; it is FALSE if the CWnd has been disabled. 4��<ˉ<) "��2�������Remarks���<�<d ��o�2������������s(����6C4�����L��������Called when an application changes the enabled state of CWnd. It is sent to the CWnd whose enabled state is changing. OnEnable is called before the EnableWindow member function returns, but after the window enabled state (WS_DISABLED style bit) has changed. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_ENABLE message. 5ˉ<�<) "��2�������See Also|:�<��<B T�t�2�����s(����L���������CWnd::EnableWindow, CWnd::Default, WM_ENABLE �\�<$�<1���������T$�<c�<��<CWnd::OnEndSessionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?��<c�<) "�,�2�������CWnd::OnEndSessionb0$�<ō<2 4�`�r�=���~������afx_msg void OnEndSession( BOOL bEnding );)c�<�<& ��2������Kō<9�<2 4�2�R�=��~Q�=�����ParameterDescription���<��<< F��R�=��~�=���������bEndingSpecifies whether or not the session is being ended. It is TRUE if the session is being ended; otherwise, it is FALSE. 49�<0�<) "��2�������Remarks���<��<w ��/�2��������㮥%\������������������I`t�������Called after the CWnd has returned TRUE from a OnQueryEndSession member function0�<��<��< call. The OnEndSession call informs the CWnd whether the session is actually ending. If bEnding is TRUE, Windows can terminate any time after all applications have returned from processing this call. Consequently, have an application perform all tasks required for termination within OnEndSession. CWnd does not need to call the DestroyWindow member function or PostQuitMessage Windows function when the session is ending. ��0�<��<@ N�k�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_ENDSESSION message. See Also�}��<��<Z ����2����I`t�������㮥%\����L���������CWnd::DestroyWindow, ::ExitWindows, ::PostQuitMessage, WM_QUERYENDSESSION, CWnd::Default, WM_ENDSESSION �[��<"�<1���������U"�<`�<��<CWnd::OnEnterIdleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>��<`�<) "�*�2�������CWnd::OnEnterIdler:"�<��<8 @�t�r�=���~��������afx_msg void OnEnterIdle( UINT nWhy, CWnd* pWho );)`�<��<& ��2������K��<F�<2 4�2�R�=��~Q�=�����ParameterDescription����<	�<0 .�'�R�=��~�=�����nWhySpecifies whether the message is the result of a dialog box or a menu being displayed. This parameter can be one of the following values: GF�<P�<2 4�*�R�7�	~Q�7�����ValueDescription��	�<�<8 >�%�R�7�	~�7���������MSGF_DIALOGBOXThe system is idle because a dialog box is being displayed. MSGF_MENUThe system is idle because a menu is being displayed. '�P�<A�<H ^���R�=��~�=�������������pWhoSpecifies a pointer to the dialog box (if nWhy is MSGF_DIALOGBOX), or the window containing the displayed menu (if nWhy is MSGF_MENU). This pointer may be temporary, and should not be stored for later use. 4�<u�<) "��2�������Remarks�A�<��<G \���2��������L�����������A call to OnEnterIdle informs an application's main window procedure that a modal dialog box or a menu is entering an idle state. A modal dialog box or menu enters an idle state when no messages are waiting in its queue after it has processed one or more previous messages. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_ENTERIDLE message. See Also[%u�<��<6 <�J�2����L���������CWnd::Default, WM_ENTERIDLE �\��<m�<1;	��������Vm�<��<_=CWnd::OnEraseBkgndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?��<��<) "�,�2�������CWnd::OnEraseBkgnd^,m�<
�<2 4�X�r�=���~������afx_msg BOOL OnEraseBkgnd( CDC* pDC );)��<3�<& ��2������K
�<~�<2 4�2�R�=��~Q�=�����ParameterDescription\-3�<��</ .�Z�R�=��~�=�����pDCSpecifies the device-context object. 4~�<�<) "��2�������RemarksA���<O�<_ ����2��������L��������L�����)�'�������Called when the CWnd background needs erasing (for example, when resized). It is called to prepare an invalidated region for painting. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_ERASEBKGND message. The Default and DefWindowProc member functions erase the background using the class background brush specified by the hbrbackground member of the class structure. D��<�=R r���2���������������������If the hbrbackground member is NULL, OnEraseBkgnd should erase the background color. OnO�<�=��<EraseBkgnd should align the origin of the intended brush with the CWnd coordinates by first calling the UnrealizeObject Windows function for the brush, and then selecting the brush. Windows assumes the background should be computed by using the MM_TEXT mapping mode. If the device context is using any other mapping mode, the area erased may not be within the visible part of the client area. 4O�<�=) "��2�������Returns�d�=l=5 :���2�����������OnEraseBkgnd should return TRUE to erase the background; otherwise, it should return FALSE. 5�=�=) "��2�������See Also�jl=_=T x���2������l�N�����L������㑧Qk������::UnrealizeObject, WM_ICONERASEBKGND, CWnd::Default, WM_ERASEBKGND, CBrush::FromHandle �\�=�=1���������W�=+=�=CWnd::OnFontChangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?_=+=) "�,�2�������CWnd::OnFontChangeL �=w=, (�@�r�=���~����afx_msg void OnFontChange();)+=�=& ��2������4w=�=) "��2�������Remarksq�=E=Y ��1�2������������������������All top-level windows in the system receive an OnFontChange call after the application changes the pool of font resources. An application that adds or removes fonts from the system (for example, through the AddFontResource or RemoveFontResource Window function) should send the WM_FONTCHANGE message to all top-level windows. To send the WM_FONTCHANGE message to all top-level windows, an application can use the SendMessage Windows function to send the WM_FONTCHANGE message with the hWnd parameter set to 0xFFFF. ���=:=@ N�k�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_FONTCHANGE message. See Also�dE=�=H `���2����������L���������::AddFontResource, ::RemoveFontResource, ::SendMessage, CWnd::Default, WM_FONTCHANGE �\:=s	=1P��������Xs	=�	=TA=CWnd::OnGetDlgCodeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?�=�	=) "�,�2�������CWnd::OnGetDlgCodeL s	=�	=, (�@�r�=���~����afx_msg UINT OnGetDlgCode();)�	='
=& ��2������4�	=[
=) "��2�������Remarks�'
=o=j ��U�2����������������L�����)�'���������Normally, Windows handles all DIRECTION-key and TAB-key input to a CWnd control. When OnGetDlgCode is called, a CWnd control can choose a particular type of input to process itself. Although the Default and DefWindowProc member functions always return 0 in response to the WM_GETDLGCODE message, the OnGetDlgCode functions for the predefined control classes return a code appropriate for each class. y5[
=�
=D V�k�2�������L�����������OnGetDlgCode's returned values are useful only with user-defined dialog controls or standard controls modified by subclassing. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_GETDLGCODE message. Returns�bo=p=& ���2������One or more of the following values, indicating which type of input the application processes: C�
=�=2 4�"�R�w��}Q�w�����ValueMeaning~p=�@=� ހ��R�w��}�w���������������������������������������������DLGC_DEFPUSHBUTTONDefault pushbutton. DLGC_HASSETSELEM_SETSEL messages. DLGC_PUSHBUTTONPushbutton. DLGC_RADIOBUTTONRadio button. DLGC_WANTALLKEYSAll keyboard input. DLGC_WANT�=�@=�=ARROWSDIRECTION keys. DLGC_WANTCHARSWM_CHAR messages. DLGC_WANTMESSAGEAll keyboard input (the application passes this message on to control). DLGC_WANTTABTAB key. 4�=�@=(  ��������See Also[&�@=TA=5 :�L����L���������CWnd::Default, WM_GETDLGCODE �_�@=�A=1	��������Y�A=%B=K=CWnd::OnGetMinMaxInfoEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")ATA=%B=(  �2�������CWnd::OnGetMinMaxInfoi7�A=�B=2 4�n�r�=���~������afx_msg void OnGetMinMaxInfo( LPPOINT lpPoints );)%B=�B=& ��2������K�B=C=2 4�2�R�=��~Q�=�����ParameterDescription�c�B=�C=5 :���R�=��~�=�������lpPointsPoints to an array of five POINT structures that contain the following information: CC=�C=2 4�"�R��?Q������ValueMeaning9��C=F=� �_�R��?����������������������������������������apt[0]This value is reserved for internal use. apt[1]Specifies the maximized width (point.x) and the maximized height (point.y) of the CWnd. apt[2]Specifies the position of the left side of the maximized window (point.x) and the position of the top of the maximized window (point.y). apt[3]Specifies the minimum tracking width (point.x) and the minimum tracking height (point.y) of the CWnd. �y�C=�F=G ^���R��?��������������apt[4]Specifies the maximum tracking width (point.x) and the maximum tracking height (point.y) of the CWnd. 4F=
G=) "��2�������Remarks�t�F=�I=. *���2���������Called whenever Windows needs to know the maximized position or dimensions, or the minimum or maximum tracking size. The maximized size is the size of the window when its borders are fully extended. The maximum tracking size of the window is the largest window size that can be achieved by using the borders to size the window. The minimum tracking size of the window is the smallest window size that can be achieved by using the borders to size the window. Windows fills in an array of points specifying default values for the various positions and dimensions. The application may change these values in OnGetMinMaxInfo. ��
G=�J=@ N�q�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_GETMINMAXINFO message. See Also_)�I=K=6 <�R�2����L���������CWnd::Default, WM_GETMINMAXINFO �Y�J=�K=1G	��������Z�K=�K=F�=CWnd::OnHScrollEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<K=�K=) "�&�2�������CWnd::OnHScroll�T�K=[L=> L���r�=���~����������afx_msg void OnHScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar );)�K=�L=& ��2������K[L=�L=2 4�2�R�=��~Q�=�����ParameterDescription���L=�M=0 .��R�=��~�=�����nSBCodeSpecifies a scroll-bar code that indicates the user's scrolling request. This parameter can be one of the following values: G�L=�M=2 4�*�R�i��}Q�i�����ValueDescription�N�M=�O=n ����R�i��}�i�����������������������������������SB_BOTTOMScroll to lower right. SB_ENDSCROLLEnd scroll. SB_LINEDOWNScroll one line down. SB_LINEUPScroll one line up. SB_PAGEDOWNScroll one page down. SB_PAGEUPScroll one page up. SB_THUMBPOSITIONScroll to the absolute position. The current position is provided in nPos. SB_TOPScroll to upper left. K
�M=�=> J��R�=��~�=�����������nPosSpecifies the scroll box position if the scroll-b�O=�=K=ar code is SB_THUMBPOSITION; otherwise, not used. pScrollBarIf the control is a scroll bar, contains a pointer to the control. If the user clicked a pop-up window's scroll bar, this parameter is not used. 4�O=�=) "��2�������Remarksc�=x�=N j�+�2���������O`������L��������Called when the user clicks a window's horizontal scroll bar. The SB_THUMBTRACK notification code typically is used by applications that give some feedback while the scroll box is being dragged. If an application scrolls the contents controlled by the scroll bar, it must also reset the position of the scroll box by using the SetScrollPos member function. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_HSCROLL message. 5�=��=) "��2�������See Also�Kx�=F�=N l���2����O`�����6R�Ѐ�����L�������CWnd::SetScrollPos, WM_VSCROLL, WM_HSCROLL, CWnd::Default �b��=ل=1<	��������[ل=�=)�=CWnd::OnHScrollClipboardEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")EF�=�=) "�8�2�������CWnd::OnHScrollClipboard�Xل=��=> L���r�=���~����������afx_msg void OnHScrollClipboard( CWnd* pClipAppWnd, UINT nSBCode, UINT nPos );)�=݅=& ��2������K��=(�=2 4�2�R�c��~Q�c�����ParameterDescription�݅=:�=8 >���R�c��~�c���������pClipAppWndSpecifies a pointer to a Clipboard-viewer window. The pointer may be temporary, and should not be stored for later use. nSBCodeSpecifies one of the following scroll-bar codes in the low-order word: G(�=��=2 4�*�R����}Q�������ValueDescription�N:�==�=n ����R����}�������������������������������������SB_BOTTOMScroll to lower right. SB_ENDSCROLLEnd scroll. SB_LINEDOWNScroll one line down. SB_LINEUPScroll one line up. SB_PAGEDOWNScroll one page down. SB_PAGEUPScroll one page up. SB_THUMBPOSITIONScroll to the absolute position. The current position is provided in nPos. SB_TOPScroll to upper left. �m��=߉=5 :���R�c��~�c�������nPosContains the scroll box position if the scroll-bar code is SB_THUMBPOSITION; otherwise, not used. 4=�=�=) "��2�������RemarksG�߉=Z�=R r���2�������z��������|�$����)�B������The Clipboard owner's OnHScrollClipboard member function is called by the Clipboard viewer when the Clipboard data has the CF_OWNERDISPLAY format and there is an event in the Clipboard viewer's horizontal scroll bar. The owner should scroll the Clipboard image, invalidate the appropriate section, and update the scroll-bar values. The Clipboard owner should use the Invalidate or InvalidateRect member functions, or repaint as desired. The scroll-bar position should also be reset. ���=U�=@ N�w�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_HSCROLLCLIPBOARD message. See Also�zZ�=)�=Z ����2�����|�$����Lq�����)�B�����L���������CWnd::Invalidate, CWnd::OnVScrollClipboard, CWnd::InvalidateRect, CWnd::Default, WM_HSCROLLCLIPBOARD �`U�=��=1I��������\��=��=��=CWnd::OnIconEraseBkgndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")C)�=��=) "�4�2�������CWnd::OnIconEraseBkgndb0��=_�=2 4�`�r�=���~������afx_msg void OnIconEraseBkgnd( CDC* pDC );)��=��=& ��2������K_�=ӏ=2 4�2�R�=��~Q�=�����ParameterDescription�s��=��=/ .���R�=��~�=���ӏ=��=)�=��pDCSpecifies the device-context object of the icon. May be temporary, and should not be stored for later use. 4ӏ=��=) "��2�������Remarkss��=(�=_ ��)�2���������;5�΀����)�'�����L��������Called for a minimized (iconic) CWnd when the background of the icon must be filled before painting the icon. CWnd receives this call only if a class icon is defined for the window; otherwise, the WM_ERASEBKGND message is sent instead. The DefWindowProc member function fills the icon background with the background brush of the parent window. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_ICONERASEBKGND message. 5��=]�=) "��2�������See Also=(�=��=B T�z�2����L�����;5�΀�������CWnd::Default, WM_ERASEBKGND, WM_ICONERASEBKGND �Z]�=g�=1|��������]g�=��=��=CWnd::OnInitMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=��=��=) "�(�2�������CWnd::OnInitMenu`.g�=�=2 4�\�r�=���~������afx_msg void OnInitMenu( CMenu* pMenu );)��=-�=& ��2������K�=x�=2 4�2�R�=��~Q�=�����ParameterDescription�j-�=�=/ .���R�=��~�=�����pMenuSpecifies the menu to be initialized. May be temporary, and should not be stored for later use. 4x�=E�=) "��2�������Remarks6�={�=4 6��2�����������Called when a menu is about to become active. The call occurs when the user clicks an item on the menu bar or presses a menu key. Override this member function in order to modify the menu before it is displayed. OnInitMenu is only called when a menu is first accessed; OnInitMenu is called only once for each access. This means, for example, that moving the mouse across several menu items while holding down the button does not generate new calls. This call does not provide information about menu items. ��E�=n�=@ N�g�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_INITMENU message. See Also�?{�=��=B T�~�2�����WJ�����L���������CWnd::OnInitMenuPopup, CWnd::Default, WM_INITMENU �_n�=�=1���������^�=��=q�=CWnd::OnInitMenuPopupEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B��=��=) "�2�2�������CWnd::OnInitMenuPopup�X�=W�=> L���r�=���~����������afx_msg void OnInitMenuPopup( CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu );)��=��=& ��2������KW�=��=2 4�2�R�M��~Q�M�����ParameterDescriptionS��=�=L f��R�M��~�M�����������������pPopupMenuSpecifies the menu object of the pop-up menu. May be temporary, and should not be stored for later use. nIndexSpecifies the index of the pop-up menu in the main menu. bSysMenuTRUE if the pop-up menu is the system menu; otherwise FALSE. 4��=R�=) "��2�������Remarks�]�=��=A P���2������L�����������Called when a pop-up menu is about to become active. This allows an application to modify the pop-up menu before it is displayed, without changing the entire menu. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_INITMENUPOPUP message. See Also�?R�=q�=B T�~�2����H�M6����L���������CWnd::OnInitMenu, CWnd::Default, WM_INITMENUPOPUP �Y��=>1c��������_>H>z>CWnd::OnKeyDownEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")q�=>q�=<q�=H>) "�&�2�������CWnd::OnKeyDown�J>�>> L���r�=���~����������afx_msg void OnKeyDown( UINT nChar, UINT nRepCnt, UINT nFlags );)H>�>& ��2������K�>D>2 4�2�R�=��~Q�=�����ParameterDescriptiono/�>�>@ N�_�R�=��~�=�������������nCharSpecifies the virtual-key code of the given key. nRepCntRepeat count (the number of times the keystroke is repeated as a result of the user holding down the key). nFlagsSpecifies the scan code, key-transition code, previous key state, and context code, as shown in the following list: GD>�>2 4�*�R��?Q������ValueDescription��>�>? L���R��?�������������������0-7Scan code (OEM-dependent value). 8Extended key, such as a function key or a key on the numeric keypad (1 if it is an extended key). 9-10Not used. 11-12Used internally by Windows. 13Context code (1 if the ALT key is held down while the key is pressed, 0 otherwise). 14Previous key state (1 if the key is down before the call, 0 if the key is up). 15Transition state (1 if the key is being released, 0 if the key is being pressed). �m�>�>2 4���R�=��~�=������For a WM_KEYDOWN message, the key-transition bit (bit 15) is 0 and the context-code bit (bit 13) is 0. 4�>�>) "��2�������Remarks(��>�>L f���2������������YpZ��������Called when a nonsystem key is pressed. A nonsystem key is a keyboard key that is pressed when the ALT key is not pressed, or a keyboard key that is pressed when CWnd has the input focus. Because of auto-repeat, more than one OnKeyDown call may occur before an OnKeyUp member function call is made. The bit indicating the previous key state can be used to determine whether the OnKeyDown call indicates the first down transition or a repeated down transition. ��>�	>o ��-�2�����������6M��������������������For IBM Enhanced 101- and 102-key keyboards, enhanced keys are the right ALT and the right CONTROL keys on the main section of the keyboard; the INSERT, DELETE, HOME, END, PAGE UP, PAGE DOWN, and ARROW keys in the clusters to the left of the numeric keypad; and the slash (/) and ENTER keys in the numeric keypad. Some other keyboards may support the extended-key bit in nFlags. ���>�
>@ N�e�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_KEYDOWN message. See Also�>�	>z>N l�|�2����3(�����YpZ�����L���������WM_CHAR, WM_KEYUP, CWnd::Default, WM_KEYDOWN �W�
>>1
��������`><>AF>CWnd::OnKeyUpEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')"):z><>) "�"�2�������CWnd::OnKeyUp�H>�>> L���r�=���~����������afx_msg void OnKeyUp( UINT nChar, UINT nRepCnt, UINT nFlags );)<>�>& ��2������K�>6
>2 4�2�R�=��~Q�=�����ParameterDescriptiono/�>�>@ N�_�R�=��~�=�������������nCharSpecifies the virtual-key code of the given key. nRepCntRepeat count (the number of times the keystroke is repeated as a result of the user holding down the key). nFlagsSpecifies the scan code, key-transition code, previous key state, and context code, as shown in the following list: G6
>�>2 4�*�R��?Q������ValueDescription,��>$A>? L���R��?�������������������0-7Scan code (OEM-dependent value). Low byte of high-order word. 8Extended key, such as a function key or a key on the numeric keypad (1 if it is an extended key; 0 otherwise). 9-10Not used. 11-12Used inte�>$A>z>rnally by Windows. 13Context code (1 if the ALT key is held down while the key is pressed, 0 otherwise). 14Previous key state (1 if the key is down before the call, 0 if the key is up). 15Transition state (1 if the key is being released, 0 if the key is being pressed). �k�>�A>2 4���R�=��~�=������For a WM_KEYUP message, the key-transition bit (bit 15) is 1 and the context-code bit (bit 13) is 0. 4$A>�A>) "��2�������Remarks�\�A>�D>| ƀ��2����������������6M��������������������Called when a nonsystem key is released. A nonsystem key is a keyboard key that is pressed when the ALT key is not pressed, or a keyboard key that is pressed when the CWnd has the input focus. For IBM Enhanced 101- and 102-key keyboards, enhanced keys are the right ALT and the right CONTROL keys on the main section of the keyboard; the INSERT, DELETE, HOME, END, PAGE UP, PAGE DOWN, and ARROW keys in the clusters to the left of the numeric keypad; and the slash (/) and ENTER keys in the numeric keypad. Some other keyboards may support the extended-key bit in nFlags. ���A>�E>@ N�a�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_KEYUP message. See Also�<�D>AF>H `�x�2����3(�������L���������WM_CHAR, WM_KEYUP, CWnd::Default, WM_KEYDOWN �[�E>�F>1���������a�F>G>�J>CWnd::OnKillFocusEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>AF>G>) "�*�2�������CWnd::OnKillFocusb0�F>mG>2 4�`�r�=���~������afx_msg void OnKillFocus( CWnd* pNewWnd );)G>�G>& ��2������KmG>�G>2 4�2�R�=��~Q�=�����ParameterDescription�q�G>�H>5 :���R�=��~�=�������pNewWndSpecifies a pointer to the window that receives the input focus (may be NULL or may be temporary). 4�G>�H>) "��2�������Remarks�A�H>DJ>H ^���2���������L�����������Called immediately before losing the input focus. If the CWnd object is displaying a caret, the caret should be destroyed at this point. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_KILLFOCUS message. See Also{9�H>�J>B T�r�2����L;Ŝ����L���������CWnd::SetFocus, CWnd::Default, WM_KILLFOCUS �_DJ>OK>1�
��������bOK>�K>��>CWnd::OnLButtonDblClkEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B�J>�K>) "�2�2�������CWnd::OnLButtonDblClkzBOK>L>8 @���r�=���~��������afx_msg void OnLButtonDblClk( UINT nFlags, CPoint point );)�K>4L>& ��2������KL>L>2 4�2�R�=��~Q�=�����ParameterDescription�{4L>)M>/ .���R�=��~�=�����nFlagsIndicates whether various virtual keys are down. This parameter can be any combination of the following values: GL>pM>2 4�*�R����~Q�������ValueDescriptionD�)M>�N>\ ����R����~���������������������������MK_CONTROLSet if CONTROL key is down. MK_LBUTTONSet if left mouse button is down. MK_MBUTTONSet if middle mouse button is down. MK_RBUTTONSet if right mouse button is down. MK_SHIFTSet if SHIFT key is down. ��pM>mO>0 .��R�=��~�=�����pointSpecifies the x- and y-coordinate of the cursor. These coordinates are always relative to the upper-left corner of the window. 4�N>�O>) "��2�������Remarks�FmO>W�>d ����2��������������'
�����8�.s�������O>W�>�J>���Called when the user double-clicks the left mouse button. Only windows that have the CS_DBLCLKS WNDCLASS style will receive OnLButtonDblClk calls. This is the default for Microsoft Foundation Class windows. Windows calls OnLButtonDblClk when the user presses, releases, and then presses the left mouse button again within the system's double-click time limit. Double-clicking the left mouse button actually generates four events: WM_LBUTTONDOWN, WM_LBUTTONUP messages, the WM_LBUTTONDBLCLK call, and another WM_LBUTTONUP message when the button is released. ���O>O�>@ N�q�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_LBUTTONDBLCLK message. See Also�YW�>��>N l���2����'
�����8�.s����L���������CWnd::OnLButtonDown, CWnd::OnLButtonUp, CWnd::Default, WM_LBUTTONDBLCLK �]O�>��>1��������c��>Ą>��>CWnd::OnLButtonDownEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@��>Ą>) "�.�2�������CWnd::OnLButtonDownx@��><�>8 @���r�=���~��������afx_msg void OnLButtonDown( UINT nFlags, CPoint point );)Ą>e�>& ��2������K<�>��>2 4�2�R�=��~Q�=�����ParameterDescription�{e�>Z�>/ .���R�=��~�=�����nFlagsIndicates whether various virtual keys are down. This parameter can be any combination of the following values: G��>��>2 4�*�R����~Q�������ValueDescriptionD�Z�>�>\ ����R����~���������������������������MK_CONTROLSet if CONTROL key is down. MK_LBUTTONSet if left mouse button is down. MK_MBUTTONSet if middle mouse button is down. MK_RBUTTONSet if right mouse button is down. MK_SHIFTSet if SHIFT key is down. ����>��>6 :��R�=��~�=�������pointSpecifies the x- and y-coordinate of the cursor. These coordinates are always relative to the upper-left corner of CWnd. 4�>Ԉ>) "��2�������Remarks,���>�>A P���2������L�����������Called when the user presses the left mouse button. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_LBUTTONDOWN message. See Also�YԈ>��>N l���2����0|����8�.s������L�������CWnd::OnLButtonDblClk, CWnd::OnLButtonUp, WM_LBUTTONDOWN, CWnd::Default �[�>3�>1���������d3�>q�>]�>CWnd::OnLButtonUpEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>��>q�>) "�*�2�������CWnd::OnLButtonUpv>3�>�>8 @�|�r�=���~��������afx_msg void OnLButtonUp( UINT nFlags, CPoint point );)q�>�>& ��2������K�>[�>2 4�2�R�=��~Q�=�����ParameterDescription�{�>�>/ .���R�=��~�=�����nFlagsIndicates whether various virtual keys are down. This parameter can be any combination of the following values: G[�>L�>2 4�*�R����~Q�������ValueDescriptionD��>��>\ ����R����~���������������������������MK_CONTROLSet if CONTROL key is down. MK_LBUTTONSet if left mouse button is down. MK_MBUTTONSet if middle mouse button is down. MK_RBUTTONSet if right mouse button is down. MK_SHIFTSet if SHIFT key is down. ��L�>K�>6 :��R�=��~�=�������pointSpecifies the x- and y-coordinate of the cursor. These coordinates are always relative to the upper-left corner of CWnd. 4��>�>) "��2�������Remarks+�K�>��>A P���2������L�����������Called when the user releases the left mouse button. This mess�>��>��>age-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_LBUTTONUP message. See Also�Y�>]�>N l���2����0|����'
�������L�������CWnd::OnLButtonDblClk, CWnd::OnLButtonDown, WM_LBUTTONUP, CWnd::Default �_��>��>1���������e��>/�>��>CWnd::OnMButtonDblClkEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B]�>/�>) "�2�2�������CWnd::OnMButtonDblClkzB��>��>8 @���r�=���~��������afx_msg void OnMButtonDblClk( UINT nFlags, CPoint point );)/�>��>& ��2������K��>�>2 4�2�R�=��~Q�=�����ParameterDescription�{��>��>/ .���R�=��~�=�����nFlagsIndicates whether various virtual keys are down. This parameter can be any combination of the following values: G�>�>2 4�*�R����~Q�������ValueDescriptionD���>R�>\ ����R����~���������������������������MK_CONTROLSet if CONTROL key is down. MK_LBUTTONSet if left mouse button is down. MK_MBUTTONSet if middle mouse button is down. MK_RBUTTONSet if right mouse button is down. MK_SHIFTSet if SHIFT key is down. ���>
�>6 :��R�=��~�=�������pointSpecifies the x- and y-coordinate of the cursor. These coordinates are always relative to the upper-left corner of CWnd. 4R�>A�>) "��2�������Remarks�B
�>��>d ����2���������������g�C����o5Ҁ��������Called when the user double-clicks the middle mouse button. Only windows that have the CS_DBLCLKS WNDCLASS style will receive OnMButtonDblClk calls. This is the default for all Microsoft Foundation Class windows. Windows generates a OnMButtonDblClk call when the user presses, releases, and then presses the middle mouse button again within the system's double-click time limit. Double-clicking the middle mouse button actually generates four events: WM_MBUTTONDOWN and WM_MBUTTONUP messages, the WM_MBUTTONDBLCLK call, and another WM_MBUTTONUP message. ��A�>��>@ N�q�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_MBUTTONDBLCLK message. See Also�Y��>��>N l���2����L������g�C����o5Ҁ�������CWnd::Default, CWnd::OnMButtonDown, CWnd::OnMButtonUp, WM_MBUTTONDBLCLK �]��>�>1x��������f�>T�>E?CWnd::OnMButtonDownEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@��>T�>) "�.�2�������CWnd::OnMButtonDownx@�>��>8 @���r�=���~��������afx_msg void OnMButtonDown( UINT nFlags, CPoint point );)T�>��>& ��2������K��>@�>2 4�2�R�=��~Q�=�����ParameterDescription�{��>��>/ .���R�=��~�=�����nFlagsIndicates whether various virtual keys are down. This parameter can be any combination of the following values: G@�>1�>2 4�*�R����~Q�������ValueDescriptionD���>u�>\ ����R����~���������������������������MK_CONTROLSet if CONTROL key is down. MK_LBUTTONSet if left mouse button is down. MK_MBUTTONSet if middle mouse button is down. MK_RBUTTONSet if right mouse button is down. MK_SHIFTSet if SHIFT key is down. ��1�>0�>6 :��R�=��~�=�������pointSpecifies the x- and y-coordinate of the cursor. These coordinates are always relative to the upper-left corner of CWnd. 4u�>d�>) "��2�������Remarks.�0�>�?A P���2������L�����������Called when the user presses the middle mouse button. This message-handler member functiod�>�?��>n calls the Default member function. Override this member function in your derived class to handle the WM_MBUTTONDOWN message. See Also�Yd�>E?N l���2����΋�.����o5Ҁ���L���������CWnd::OnMButtonDblClk, CWnd::OnMButtonUp, CWnd::Default, WM_MBUTTONDOWN �[�?�?1&��������g�???CWnd::OnMButtonUpEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>E??) "�*�2�������CWnd::OnMButtonUpv>�?�?8 @�|�r�=���~��������afx_msg void OnMButtonUp( UINT nFlags, CPoint point );)?�?& ��2������K�?�?2 4�2�R�=��~Q�=�����ParameterDescription�{�?�?/ .���R�=��~�=�����nFlagsIndicates whether various virtual keys are down. This parameter can be any combination of the following values: G�?�?2 4�*�R����~Q�������ValueDescriptionD��?.?\ ����R����~���������������������������MK_CONTROLSet if CONTROL key is down. MK_LBUTTONSet if left mouse button is down. MK_MBUTTONSet if middle mouse button is down. MK_RBUTTONSet if right mouse button is down. MK_SHIFTSet if SHIFT key is down. ���?�?6 :��R�=��~�=�������pointSpecifies the x- and y-coordinate of the cursor. These coordinates are always relative to the upper-left corner of CWnd. 4.??) "��2�������Remarks@��?]?D V���2�������L�����������OnMButtonUp is called when the user releases the middle mouse button. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_MBUTTONUP message. See Also�Y??N l���2����΋�.�����g�C����L���������CWnd::OnMButtonDblClk, CWnd::OnMButtonDown, CWnd::Default, WM_MBUTTONUP �]]?�?1i	��������h�?�?B?CWnd::OnMDIActivateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@?�?) "�.�2�������CWnd::OnMDIActivate�c�?s	?> L���r�=���~����������afx_msg void OnMDIActivate( BOOL bActivate, CWnd* pActivatedWnd, CWnd* pDeactivatedWnd );)�?�	?& ��2������Ks	?�	?2 4�2�R����~Q�������ParameterDescription�!�	?j?b ��C�R����~�������������������������bActivateWhen the client window calls a child window's OnMDIActivate member function, bActivate is TRUE if the child is being activated and FALSE if it is being deactivated. pActivatedWndWhen the application calls its MDI client window's OnMDIActivate member function, pActivatedWnd contains a pointer to the MDI child window to be activated. When received by an MDI child window, pActivatedWnd contains a pointer to the child window being activated. This pointer may be temporary, and should not be stored for later use. ��	?m
?6 :���R����~���������pDeactivatedWndWhen received by an MDI child window, pDeactivatedWnd contains a pointer to the child window being deactivated. This pointer may be temporary, and should not be stored for later use. 4j?�
?) "��2�������Remarks�Gm
?@@?L f���2������������i|�܀������An application calls the multiple document interface (MDI) CMDIFrameWnd::MDIActivate member function to activate a different MDI child window. The OnMDIActivate member function is called for the child window being deactivated and the child window being activated. An MDI child window is activated independently of the MDI frame window. When the frame becomes active, the child window that was last activated with a OnMDIActivate call receives a WM_NCACTIVATE message to draw an active window frame and caption bar, but �
?@@??it does not receive another OnMDIActivate call. ���
?6A?@ N�m�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_MDIACTIVATE message. See Also��@@?B?[ ���2�����Į�����
濾����	ND������L�������CMDIFrameWnd::MDIGetActive, CMDIFrameWnd::MDINext, CMDIFrameWnd::MDIActivate, WM_MDIACTIVATE, CWnd::Default �]6A?�B?1��������i�B?�B?�J?CWnd::OnMeasureItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@B?�B?) "�.�2�������CWnd::OnMeasureItem~L�B?^C?2 4���r�=���~������afx_msg void OnMeasureItem( LPMEASUREITEMSTRUCT lpMeasureItemStruct );)�B?�C?& ��2������K^C?�C?2 4�2�R�݁?~Q�������ParameterDescription���C?�D?< F�'�R�݁?~������Kkn�����lpMeasureItemStructSpecifies a long pointer to a MEASUREITEMSTRUCT data structure that contains the dimensions of the owner-draw control. 4�C?�D?) "��2�������Remarks�`�D?�G?R r���2�����Kkn�������pCC����Kjz̀����Called for the owner of an owner-draw button, combo box, list box, or menu item when the control is created. When the owner receives the call, the owner should fill in the MEASUREITEMSTRUCT data structure pointed to by lpMeasureItemStruct and return; this informs Windows of the dimensions of the control and allows Windows to process user interaction with the control correctly. If a list box or combo box is created with the LBS_OWNERDRAWVARIABLE or CBS_OWNERDRAWVARIABLE style, this function is called for the owner for each item in the control; otherwise, this function is called once. �G�D?J?L f���2������������L��������Windows calls OnMeasureItem for the owner of combo boxes and list boxes created with the OWNERDRAWFIXED style before sending the WM_INITDIALOG message. As a result, when the owner receives this call, Windows has not yet determined the height and width of the font used in the control; function calls and calculations requiring these values should occur in the main function of the application or library. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_MEASUREITEM message. 5�G?OJ?) "��2�������See Alsot8J?�J?< H�p�2������L���������WM_INITDIALOG, CWnd::Default, WM_MEASUREITEM �ZOJ?NK?15��������jNK?�K?{�?CWnd::OnMenuCharEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=�J?�K?) "�(�2�������CWnd::OnMenuChar�KNK?L?> L���r�=���~����������afx_msg LONG OnMenuChar( UINT nChar, UINT nFlags, CMenu* pMenu );)�K?=L?& ��2������KL?�L?2 4�2�R�=��~Q�=�����ParameterDescription�2=L?N?R r�e�R�=��~�=�������������������nCharSpecifies the ASCII character that the user pressed. nFlagsContains the MF_POPUP flag if the menu is a pop-up menu. It contains the MF_SYSMENU flag if the menu is a Control menu. pMenuContains a pointer to the selected CMenu. The pointer may be temporary, and should not be stored. 4�L?@N?) "��2�������Remarks�_N?�?G \���2��������L�����������Called when the user presses a menu mnemonic character that doesn't match any of the predefined mnemonics in the current menu. It is sent to the CWnd that owns the menu. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_MENUCHAR message. Returns@N?�?�J?�^@N?��?& ���2������The high-order word of the return value should contain one of the following command codes: F�?ր?1 2�*�R�݀?�܀����ValueDescriptionc3��?9�?0 .�g�R�݀?�܀�������0Tells Windows to discard the character that the user pressed, and creates a short beep on the system speaker. 1Tells Windows to close the current menu. 2Informs Windows that the low-order word of the return value contains the menu item-number for a specific item. This item is selected by Windows. ��ր?"�?- (�y���������The low-order word is ignored if the high-order word contains 0 or 1. Applications should process this message when accelerators are used to select bitmaps placed in a menu. See AlsoY$9�?{�?5 :�H����L���������CWnd::Default, WM_MENUCHAR �\"�?�?1���������k�?F�?�?CWnd::OnMenuSelectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>{�?F�?(  �,�������CWnd::OnMenuSelect�Q�?Մ?> L���r�=���~����������afx_msg void OnMenuSelect( UINT nItemID, UINT nFlags, HMENU hSysMenu );)F�?��?& ��2������KՄ?I�?2 4�2�R�=��~Q�=�����ParameterDescriptionN
��?��?D V��R�=��~�=�������������nItemIDIdentifies the item selected. If the selected item is a menu item, nItemID contains the menu-item ID. If the selected item contains a pop-up menu, nItemID contains the pop-up menu handle. nFlagsContains a combination of the following menu flags: FI�?݆?2 4�(�R�#�~Q�#�����FlagDescription�h��?��?p ����R�#�~�#�������������������������������������MF_BITMAPItem is a bitmap. MF_CHECKEDItem is checked. MF_DISABLEDItem is disabled. MF_GRAYEDItem is dimmed. MF_MOUSESELECTItem was selected with a mouse. MF_OWNERDRAWItem is an owner-draw item. MF_POPUPItem contains a pop-up menu. MF_SEPARATORItem is a menu-item separator. MF_SYSMENUItem is contained in the Control menu. �a݆?Q�?; F���R�=��~�=���������hSysMenuIdentifies the menu associated with the message, if nFlags contains MF_SYSMENU. 4��?��?) "��2�������Remarks�Q�?��?` ��O�2�����������������L�����������If the CWnd is associated with a menu, OnMenuSelect is called when the user selects a menu item. If nFlags contains -1 and hSysMenu contains 0, Windows has closed the menu because the user pressed ESC or clicked outside the menu. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_MENUSELECT message. See Also\&��?�?6 <�L�2����L���������CWnd::Default, WM_MENUSELECT �_��?x�?1*
��������lx�?��?�?CWnd::OnMouseActivateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B�?��?) "�2�2�������CWnd::OnMouseActivate�Vx�?N�?> L���r�=���~����������afx_msg int OnMouseActivate( CWnd* pFrameWnd, UINT nHitTest, UINT message );)��?w�?& ��2������KN�??2 4�2�R�=��~Q�=�����ParameterDescription~2w�?@�?L f�e�R�=��~�=��������]�Y5���������pFrameWndSpecifies a pointer to the topmost parent window of the window being activated. The pointer may be temporary, and should not be stored. nHitTestSpecifies the hit-test area code. A hit test is a test that determines the location of the cursor. messageSpecifies the message number. 4?t�?) "��2�������Remarks�@�?�?w ���2������L�����)�'����L�����)�'���������L��������Called when the curst�?�?�?or is in an inactive window and the user presses a mouse button. If the child window passes the message to the Default or DefWindowProc member function, Default or DefWindowProc passes this message to the CWnd parent window before any processing occurs. If the parent window returns TRUE, processing is halted. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_MOUSEACTIVATE message. 4t�?9�?) "��2�������Returns�|�?��?, (���2��������Specifies whether to activate the CWnd and whether to discard the mouse event. It must be one of the following values: C9�?$�?2 4�"�R���%}Q�������ValueMeaning7���?[�?` ����R���%}���������������������������MA_ACTIVATEActivate CWnd. MA_NOACTIVATEDo not activate CWnd. MA_ACTIVATEANDEATActivate CWnd and discard the mouse event. MA_NOACTIVATEANDEATDo not activate CWnd and discard the mouse event. 4$�?��?(  ��������See Also�@[�?�?A R�������HY�����L���������CWnd::OnNcHitTest, CWnd::Default, WM_MOUSEACTIVATE �[��?��?1���������m��?��?R�?CWnd::OnMouseMoveEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=�?��?(  �*�������CWnd::OnMouseMovev>��?O�?8 @�|�r�=���~��������afx_msg void OnMouseMove( UINT nFlags, CPoint point );)��?x�?& ��2������KO�?��?2 4�2�R�=��~Q�=�����ParameterDescription�{x�?m�?/ .���R�=��~�=�����nFlagsIndicates whether various virtual keys are down. This parameter can be any combination of the following values: G��?��?2 4�*�R����~Q�������ValueDescriptionD�m�?��?\ ����R����~���������������������������MK_CONTROLSet if CONTROL key is down. MK_LBUTTONSet if left mouse button is down. MK_MBUTTONSet if middle mouse button is down. MK_RBUTTONSet if right mouse button is down. MK_SHIFTSet if SHIFT key is down. ����?��?0 .��R�=��~�=�����pointSpecifies the x- and y-coordinate of the cursor. These coordinates are always relative to the upper-left corner of the window. 4��?��?) "��2�������Remarks����?��?M h��2����������L�����������Called when the mouse cursor moves. If the mouse is not captured, the WM_MOUSEMOVE message is received by the CWnd beneath the mouse pointer; otherwise, the message goes to the mouse-capture window. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_MOUSEMOVE message. See Also�R��?R�?N l���2�����(j�����HY�������L�������CWnd::SetCapture, CWnd::OnNCHitTest, WM_MOUSEMOVE, CWnd::Default �V��?��?1���������n��?�?�@CWnd::OnMoveEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")9R�?�?) "� �2�������CWnd::OnMoved,��?v�?8 @�X�r�=���~��������afx_msg void OnMove( int x, int y );)�?��?& ��2������Kv�?��?2 4�2�R�=��~�=�����ParameterDescription����?��?8 >��R�=��~�=���������xSpecifies the new x-coordinate location of the upper-left corner of the client area. This new location is given in screen coordinates for overlapped and pop-up windows, and parent-client coordinates for child windows. ySpecifies the new y-coordinate location of the upper-left corner of the client area. This new location is given in screen coordinates for overlapped and pop-up windows, and parent-client coordinates for child windows. 4��?!@) "��2���?!@R�?������Remarks���?<@G \���2��������L�����������Called after CWnd has been moved. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_MOVE message. See AlsoV !@�@6 <�@�2����L���������CWnd::Default, WM_MOVE �\<@@1��������o@^@I@CWnd::OnNcActivateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?�@^@) "�,�2�������CWnd::OnNcActivateb0@�@2 4�`�r�=���~������afx_msg BOOL OnNcActivate( BOOL bActive );)^@�@& ��2������K�@4@2 4�2�R�=��~Q�=�����ParameterDescription.��@b@B R���R�=��~�=�����������bActiveSpecifies when a caption bar or icon needs to be changed to indicate an active or inactive state. The bActive parameter is TRUE if an active caption or icon is to be drawn. It is FALSE for an inactive caption or icon. 44@�@) "��2�������Remarks�Ub@9@N j���2������L������L�����������Called when the nonclient area needs to be changed to indicate an active or inactive state. The Default member function draws the appropriate caption bar. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCACTIVATE message. ReturnsP�@�@/ .���2���������TRUE if activation should proceed; FALSE if activation should be aborted. 59@�@) "��2�������See Also\&�@I@6 <�L�2����L���������CWnd::Default, WM_NCACTIVATE �\�@�@1���������p�@@j@CWnd::OnNcCalcSizeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?I@@) "�,�2�������CWnd::OnNcCalcSizec1�@x@2 4�b�r�=���~������afx_msg void OnNcCalcSize( LPRECT lpRect );)@�@& ��2������Kx@�@2 4�2�R�=��~Q�=�����ParameterDescription���@�	@< F�[�R�=��~�=���������lpRectPoints to a RECT data structure that contains the screen coordinates of the CWnd rectangle (including client area, borders, caption, scroll bars, and so on). 4�@	
@) "��2�������Remarks��	@@T v�c�2������L��������L�����������Called when the size of the client area needs to be calculated. The Default member function calculates the size of the client area based on the window characteristics (presence of scroll bars, menu, and so on), and places the result in lpRect. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCCALCSIZE message. See Also\&	
@j@6 <�L�2����L���������CWnd::Default, WM_NCCALCSIZE �Z@�@1��������q�@2
@mB@CWnd::OnNcCreateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=j@2
@) "�(�2�������CWnd::OnNcCreateq?�@�
@2 4�~�r�=���~������afx_msg BOOL OnNcCreate( LPCREATESTRUCT lpCreateStruct );)2
@�
@& ��2������K�
@@2 4�2�R�a��~Q�a�����ParameterDescription�M�
@�@A R���R�a��~�a����I���������lpCreateStructPoints to the CREATESTRUCT data structure for CWnd. 4@�@) "��2�������Remarks��@�@@Z ��o�2������ؤ"����������L�����������Called prior to the WM_CREATE message when the CWnd is first created. By default, scroll bars are initialized (the scroll-bar position and range are set) and the CWnd text is set. Memory used int�@�@@j@ernally to create and maintain the window is allocated. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCCREATE message. Returns���@�A@B R�
�2��������\僭�������TRUE if the nonclient area is created. It is FALSE if an error occurs; the Create function will return NULL in this case. 5�@@�A@) "��2�������See Alsoz8�A@mB@B T�p�2������������L�������CWnd::CreateEx, WM_NCCREATE, CWnd::Default �[�A@�B@1x��������r�B@7C@~G@CWnd::OnNcDestroyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>mB@7C@) "�*�2�������CWnd::OnNcDestroyK�B@�C@, (�>�r�=���~����afx_msg void OnNcDestroy();)7C@�C@& ��2������4�C@�C@) "��2�������Remarks	��C@�E@e ��I�2�����I`t�������L�����������������Called when the nonclient area is being destroyed. The DestroyWindow member function sends WM_NCDESTROY. The Default member function frees any memory internally allocated for the Windows window. The OnNcDestroy member function is the last member called when the Windows window is being destroyed. OnNcDestroy can call delete this to free the CWnd object that was dynamically allocated with new. ���C@�F@@ N�i�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCDESTROY message. See Also�T�E@~G@N l���2����I`t�����@������L�������CWnd::DestroyWindow, CWnd::OnNcCreate, WM_NCDESTROY, CWnd::Default �[�F@
H@1�
��������s
H@HH@[�@CWnd::OnNcHitTestEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>~G@HH@) "�*�2�������CWnd::OnNcHitTesta/
H@�H@2 4�^�r�=���~������afx_msg UINT OnNcHitTest( CPoint point );)HH@�H@& ��2������K�H@I@2 4�2�R�=��~Q�=�����ParameterDescription�l�H@�I@/ .���R�=��~�=�����pointContains the x- and y-coordinates of the cursor. These coordinates are always screen coordinates. 4I@�I@) "��2�������Remarks�Z�I@�K@Y ����2����������(j�����L�����������Called for the CWnd that contains the cursor (or the CWnd that used the SetCapture member function to capture the mouse input) every time the mouse is moved. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCHITTEST message. ReturnsF �I@�K@& �@�2������One of the following values: C�K@(L@2 4�"�R�%��}Q�%�����ValueMeaning8��K@`N@z €}�R�%��}�%��������������������������)�'�������������HTBOTTOMIn the lower horizontal border of the window. HTBOTTOMLEFTIn the lower-left corner of the window border. HTBOTTOMRIGHTIn the lower-right corner of the window border. HTCAPTIONIn a caption area. HTCLIENTIn a client area. HTERRORSame as HTNOWHERE except that the DefWindowProc member function produces a system beep to indicate an error. HTGROWBOXIn a size box. HTHSCROLLIn the horizontal scroll bar. -�(L@��@v ��o�R�%��}�%���������������������������������������HTLEFTIn the left border of the window. HTMENUIn a menu area. HTNOWHEREOn the screen background or on a dividing line between windows. HTREDUCEIn a Minimize button. HTRIGHTIn the right border of the window. HTSIZESame as HTGROWBOX. HTSYSMENUIn a Control-menu box (close`N@��@~G@ box in child windows). HTTOPIn the upper horizontal border of the window. HTTOPLEFTIn the upper-left corner of the window border. �`N@��@H ^���R�%��}�%�����������������HTTOPRIGHTIn the upper-right corner of the window border. HTTRANSPARENTIn a window currently covered by another window. HTVSCROLLIn the vertical scroll bar. HTZOOMIn a Maximize button. 4��@߁@(  ��������See Also|;��@[�@A R�v����L����������������CWnd::Default, CWnd::GetCapture, WM_NCHITTEST �a߁@�@1���������t�@0�@��@CWnd::OnNcLButtonDblClkEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")C[�@0�@(  �6�������CWnd::OnNcLButtonDblClk~F�@��@8 @���r�=���~��������afx_msg void OnNcLButtonDblClk( UINT nHitTest, CPoint point );)0�@׃@& ��2������K��@"�@2 4�2�R�=��~Q�=�����ParameterDescriptionj ׃@��@J b�A�R�=��~�=����]�Y5�����������nHitTestSpecifies the hit-test code. A hit test is a test that determines the location of the cursor. pointSpecifies a CPoint that contains the x and y screen coordinates of the cursor position. These coordinates are always relative to the upper-left corner of the screen. 4"�@��@) "��2�������Remarks�c��@w�@T v���2��������}V؀����L�����������Called when the user double-clicks the left mouse button while the cursor is within a nonclient area of CWnd. If appropriate, the WM_SYSCOMMAND message is sent. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCLBUTTONDBLCLK message. See Also�B��@��@B T���2����L��������HY�������CWnd::Default, WM_NCLBUTTONDBLCLK, CWnd::OnNcHitTest �_w�@��@1[��������u��@͈@��@CWnd::OnNcLButtonDownEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B��@͈@) "�2�2�������CWnd::OnNcLButtonDown|D��@I�@8 @���r�=���~��������afx_msg void OnNcLButtonDown( UINT nHitTest, CPoint point );)͈@r�@& ��2������KI�@��@2 4�2�R�=��~Q�=�����ParameterDescriptionj r�@'�@J b�A�R�=��~�=����]�Y5�����������nHitTestSpecifies the hit-test code. A hit test is a test that determines the location of the cursor. pointSpecifies a CPoint that contains the x and y screen coordinates of the cursor position. These coordinates are always relative to the upper-left corner of the screen. 4��@[�@) "��2�������Remarks�S'�@�@T v���2��������}V؀����L�����������Called when the user presses the left mouse button while the cursor is within a nonclient area of CWnd. If appropriate, the WM_SYSCOMMAND is sent. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCLBUTTONDOWN message. See Also��[�@��@g ���2�����HY�������u�����:�����}V؀�����L�������CWnd::OnNcHitTest, CWnd::OnNcLButtonDblClk, CWnd::OnNcLButtonUp, CWnd::OnSysCommand, WM_NCLBUTTONDOWN, CWnd::Default �]�@��@1��������v��@Ŏ@��@CWnd::OnNcLButtonUpEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@��@Ŏ@) "�.�2�������CWnd::OnNcLButtonUpzB��@?�@8 @���r�=���~��������afx_msg void OnNcLButtonUp( UINT nHitTest, CPoint point );)Ŏ@h�@& ��2������K?�@��@2 4�2�R�=��~Q�=�����ParameterDescriptionj h�@)�@J b�A�R�=��~�=����]�Y5�����������nH��@)�@��@itTestSpecifies the hit-test code. A hit test is a test that determines the location of the cursor. pointSpecifies a CPoint that contains the x and y screen coordinates of the cursor position. These coordinates are always relative to the upper-left corner of the screen. 4��@]�@) "��2�������Remarks�D)�@��@N j���2������}V؀����L�����������Called when the user releases the left mouse button while the cursor is within a nonclient area. If appropriate, WM_SYSCOMMAND is sent. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCLBUTTONUP message. See Also�q]�@��@Z ����2�����HY�����6�3����}V؀���L���������CWnd::OnNcHitTest, CWnd::OnNcLButtonDown, CWnd::OnSysCommand, CWnd::Default, WM_NCLBUTTONUP �a��@L�@1���������wL�@��@T�@CWnd::OnNcMButtonDblClkEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")D��@��@) "�6�2�������CWnd::OnNcMButtonDblClk~FL�@�@8 @���r�=���~��������afx_msg void OnNcMButtonDblClk( UINT nHitTest, CPoint point );)��@7�@& ��2������K�@��@2 4�2�R�=��~Q�=�����ParameterDescriptionj 7�@��@J b�A�R�=��~�=����]�Y5�����������nHitTestSpecifies the hit-test code. A hit test is a test that determines the location of the cursor. pointSpecifies a CPoint that contains the x and y screen coordinates of the cursor position. These coordinates are always relative to the upper-left corner of the screen. 4��@ �@) "��2�������Remarksd#��@��@A P�G�2������L�����������Called when the user double-clicks the middle mouse button while the cursor is within a nonclient area. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCMBUTTONDBLCLK message. See Also�v �@T�@Z ����2�����HY������6�h���� pA������L�������CWnd::OnNcHitTest, CWnd::OnNcMButtonDown, CWnd::OnNcMButtonUp, WM_NCMBUTTONDBLCLK, CWnd::Default �_��@��@1���������x��@&�@��@CWnd::OnNcMButtonDownEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")BT�@&�@) "�2�2�������CWnd::OnNcMButtonDown|D��@��@8 @���r�=���~��������afx_msg void OnNcMButtonDown( UINT nHitTest, CPoint point );)&�@��@& ��2������K��@�@2 4�2�R�=��~Q�=�����ParameterDescriptionj ��@��@J b�A�R�=��~�=����]�Y5�����������nHitTestSpecifies the hit-test code. A hit test is a test that determines the location of the cursor. pointSpecifies a CPoint that contains the x and y screen coordinates of the cursor position. These coordinates are always relative to the upper-left corner of the screen. 4�@��@) "��2�������Remarks\��@�@A P�7�2������L�����������Called when the user presses the middle mouse button while the cursor is within a nonclient area. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCMBUTTONDOWN message. See Also�v��@��@Z ����2�����HY�����%v(���� pA������L�������CWnd::OnNcHitTest, CWnd::OnNcMButtonDblClk, CWnd::OnNcMButtonUp, WM_NCMBUTTONDOWN, CWnd::Default �]�@n�@1���������yn�@��@oACWnd::OnNcMButtonUpEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@��@��@) "�.�2�������CWnd::OnNcMButtonUpzBn�@4A8 @���r�=���~��������afx_msg void OnNcMButtonU��@4A��@p( UINT nHitTest, CPoint point );)��@]A& ��2������K4A�A2 4�2�R�=��~Q�=�����ParameterDescriptionj ]AAJ b�A�R�=��~�=����]�Y5�����������nHitTestSpecifies the hit-test code. A hit test is a test that determines the location of the cursor. pointSpecifies a CPoint that contains the x and y screen coordinates of the cursor position. These coordinates are always relative to the upper-left corner of the screen. 4�AFA) "��2�������RemarksYA�AA P�1�2������L�����������Called when the user releases the left mouse button while the cursor is within a nonclient area. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCMBUTTONUP message. See Also�vFAoAZ ����2�����HY�����%v(�����6�h������L�������CWnd::OnNcHitTest, CWnd::OnNcMButtonDblClk, CWnd::OnNcMButtonDown, WM_NCMBUTTONUP, CWnd::Default �]�A�A1���������z�A=A�	ACWnd::OnNcMouseMoveEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@oA=A) "�.�2�������CWnd::OnNcMouseMovezB�A�A8 @���r�=���~��������afx_msg void OnNcMouseMove( UINT nHitTest, CPoint point );)=A�A& ��2������K�A+A2 4�2�R�=��~Q�=�����ParameterDescriptionj �A�AJ b�A�R�=��~�=����]�Y5�����������nHitTestSpecifies the hit-test code. A hit test is a test that determines the location of the cursor. pointSpecifies a CPoint that contains the x and y screen coordinates of the cursor position. These coordinates are always relative to the upper-left corner of the screen. 4+A�A) "��2�������Remarksv(�A?	AN j�Q�2������}V؀����L�����������Called when the cursor is moved within a nonclient area. If appropriate, the WM_SYSCOMMAND message is sent. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCMOUSEMOVE message. See Also�V�A�	AN l���2�����HY�����}V؀�����L�������CWnd::OnNcHitTest, CWnd::OnSysCommand, WM_NCMOUSEMOVE, CWnd::Default �Y?	Am
A1���������{m
A�
Au
ACWnd::OnNcPaintEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<�	A�
A) "�&�2�������CWnd::OnNcPaintIm
A�
A, (�:�r�=���~����afx_msg void OnNcPaint();)�
AA& ��2������4�
AOA) "��2�������Remarks��A
AB R��2�������L�����������Called when the nonclient area needs to be painted. An application can override this call and paint its own custom window frame. The clipping region is always rectangular, even if the shape of the frame is altered. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCPAINT message. See AlsoY#OAu
A6 <�F�2����L���������CWnd::Default, WM_NCPAINT �a
AA1{��������|AKA*CACWnd::OnNcRButtonDblClkEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")Du
AKA) "�6�2�������CWnd::OnNcRButtonDblClk~FA�A8 @���r�=���~��������afx_msg void OnNcRButtonDblClk( UINT nHitTest, CPoint point );)KA�A& ��2������K�A=A2 4�2�R�=��~Q�=�����ParameterDescriptionj �A�@AJ b�A�R�=��~�=����]�Y5�����������nHitTestSpecifies the hit-test code. A hit test is a test that determines the location of the cursor. pointSpe=A�@Au
Acifies a CPoint that contains the x and y screen coordinates of the cursor position. These coordinates are always relative to the upper-left corner of the screen. 4=A�@A) "��2�������Remarkss,�@AZBAG \�Y�2��������L�����������Called when the user double-clicks the right mouse button while the cursor is within a nonclient area of CWnd. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCRBUTTONDBLCLK message. See Also�v�@A*CAZ ����2�����HY�������Q����8b����L���������CWnd::OnNcHitTest, CWnd::OnNcRButtonDown, CWnd::OnNcRButtonUp, CWnd::Default, WM_NCRBUTTONDBLCLK �_ZBA�CA1���������}�CA�CA�HACWnd::OnNcRButtonDownEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B*CA�CA) "�2�2�������CWnd::OnNcRButtonDown|D�CAxDA8 @���r�=���~��������afx_msg void OnNcRButtonDown( UINT nHitTest, CPoint point );)�CA�DA& ��2������KxDA�DA2 4�2�R�=��~Q�=�����ParameterDescriptionj �DAVFAJ b�A�R�=��~�=����]�Y5�����������nHitTestSpecifies the hit-test code. A hit test is a test that determines the location of the cursor. pointSpecifies a CPoint that contains the x and y screen coordinates of the cursor position. These coordinates are always relative to the upper-left corner of the screen. 4�DA�FA) "��2�������Remarks[VFA�GAA P�5�2������L�����������Called when the user presses the right mouse button while the cursor is within a nonclient area. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCRBUTTONDOWN message. See Also�v�FA�HAZ ����2�����HY�����z�o�����8b����L���������CWnd::OnNcHitTest, CWnd::OnNcRButtonDblClk, CWnd::OnNcRButtonUp, CWnd::Default, WM_NCRBUTTONDOWN �]�GACIA1���������~CIA�IA9NACWnd::OnNcRButtonUpEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@�HA�IA) "�.�2�������CWnd::OnNcRButtonUpzBCIA�IA8 @���r�=���~��������afx_msg void OnNcRButtonUp( UINT nHitTest, CPoint point );)�IA&JA& ��2������K�IAqJA2 4�2�R�=��~Q�=�����ParameterDescriptionj &JA�KAJ b�A�R�=��~�=����]�Y5�����������nHitTestSpecifies the hit-test code. A hit test is a test that determines the location of the cursor. pointSpecifies a CPoint that contains the x and y screen coordinates of the cursor position. These coordinates are always relative to the upper-left corner of the screen. 4qJALA) "��2�������RemarksZ�KAiMAA P�3�2������L�����������Called when the user releases the right mouse button while the cursor is within a nonclient area. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_NCRBUTTONUP message. See Also�vLA9NAZ ����2�����HY�����z�o�������Q����L���������CWnd::OnNcHitTest, CWnd::OnNcRButtonDblClk, CWnd::OnNcRButtonDown, CWnd::Default, WM_NCRBUTTONUP �WiMA�NA1"���������NA�NA�ACWnd::OnPaintEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')"):9NA�NA) "�"�2�������CWnd::OnPaintG�NABOA, (�6�r�=���~����afx_msg void OnPaint();)�NAkOA& ��2������4BOA�OA) "��2�������Remarks
�kOA��AS t�o�2�����������y������L��������Called when W�OA��A9NAindows or an application makes a request to repaint a portion of the CWnd. The WM_PAINT message is sent to this member function when the UpdateWindow member function is called, or when the update region is not empty and there are no pending messages. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_PAINT message. 5�OA�A) "��2�������See Also�G��A�AN l���2�����y����㚳�*����L���������CWnd::UpdateWindow, CPaintDC, CWnd::Default, WM_PAINT �`�A�A1�����������AS�A֊ACWnd::OnPaintClipboardEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")C�AS�A) "�4�2�������CWnd::OnPaintClipboard�P�AۃA8 @���r�=���~��������afx_msg void OnPaintClipboard( CWnd* pClipAppWnd, HANDLE hPaintStruct );)S�A�A& ��2������KۃAO�A2 4�2�R�c��~Q�c�����ParameterDescriptionC��A��AD V���R�c��~�c��������;��������pClipAppWndSpecifies a pointer to the Clipboard-application window. The pointer may be temporary, and should not be stored for later use. hPaintStructIdentifies a PAINTSTRUCT data structure that defines what part of the client area to paint. 4O�AƅA) "��2�������Remarksl��A2�AX ~�)�2�������z���������;�������P&������A Clipboard owner's OnPaintClipboard member function is called by a Clipboard viewer when the owner has placed data on the Clipboard in the CF_OWNERDISPLAY format and the Clipboard viewer's client area needs repainting. To determine whether the entire client area or just a portion of it needs repainting, the Clipboard owner must compare the dimensions of the drawing area given in the rcpaint member of the PAINTSTRUCT structure to the dimensions given in the most recent OnSizeClipboard member function call. ��ƅA!�A\ ��'�2��������;����������L�����������OnPaintClipboard should use the GlobalLock Windows function to lock the memory that contains the PAINTSTRUCT data structure, and unlock that memory by using the GlobalUnlock Windows function before it exits. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_PAINTCLIPBOARD message. See Also�g2�A֊AN l���2��������P&�������L�������::GlobalLock, ::GlobalUnlock, CWnd::OnSizeClipboard, WM_PAINTCLIPBOARD, CWnd::Default �[!�Ab�A11���������b�A��A��ACWnd::OnPaintIconEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>֊A��A) "�*�2�������CWnd::OnPaintIcon4b�AԋA) "��2�������Remarksm@��AA�A- *���2���������No longer a part of the Foundation class library. See Also_#ԋA��A< H�F�2����C�������L�������WM_PAINT, CWnd::Default �`A�A1�A1����������1�At�A�ACWnd::OnPaletteChangedEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")C��At�A) "�4�2�������CWnd::OnPaletteChangedi71�AݍA2 4�n�r�=���~������afx_msg void OnPaletteChanged( CWnd* pFocusWnd );)t�A�A& ��2������KݍAQ�A2 4�2�R�=��~Q�=�����ParameterDescription���A�A0 .�%�R�=��~�=�����pFocusWndSpecifies a pointer to the window that caused the system palette to change. The pointer may be temporary, and should not be stored. 4Q�AG�A) "��2�������Remarks}6�A��AG \�m�2�����������L��������Called after the window with input focus has realized its logical palette, thereby changing the system palette. TG�A��A��Ahis call allows windows without the input focus that use a color palette to realize their logical palettes and update their client areas. To avoid creating a loop, CWnd shouldn't realize its palette unless it determines that pFocusWnd does not contain a pointer to itself. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_PALETTECHANGED message. 5G�A�A) "��2�������See Alsoz>��A�A< H�|�2��������L�������::RealizePalette, WM_PALETTECHANGED, CWnd::Default �^�A�A1�����������AO�A�ACWnd::OnParentNotifyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")A�AO�A) "�0�2�������CWnd::OnParentNotifyyA�A��A8 @���r�=���~��������afx_msg void OnParentNotify( UINT message, LONG lParam );)O�A��A& ��2������K��A<�A2 4�2�R�=��~Q�=�����ParameterDescription�g��A��A/ .���R�=��~�=�����messageSpecifies the event for which the parent is being notified. It can be any of these values: G<�A�A2 4�*�R��#~Q������ValueDescription���A �AP n�o�R��#~����������������������WM_CREATEThe child window is being created. WM_DESTROYThe child window is being destroyed. WM_LBUTTONDOWNThe user has placed the mouse cursor over the child window and clicked the left mouse button. WM_MBUTTONDOWNThe user has placed the mouse cursor over the child window and clicked the middle mouse button. WM_RBUTTONDOWNThe user has placed the mouse cursor over the child window and clicked the right mouse button. �[�A��AH ^���R�=��~�=�������������lParamSpecifies the window handle of the child window in the low-order word and the identifier of the child window in the high-order word if message is WM_CREATE or WM_DESTROY; otherwise, lParam contains the x- and y-coordinates of the cursor. The x-coordinate is in the low-order word and the y-coordinate is in the high-order word. 4 �A��A) "��2�������Remarks���A�AQ p���2�����������Ԏ�����������A parent's OnParentNotify member function is called when its child window is created or destroyed, or when the user clicks a mouse button while the cursor is over the child window. When the child window is being created, the system calls OnParentNotify just before the Create member function that creates CWnd returns. When the child window is being destroyed, the system calls OnParentNotify before any processing takes place to destroy CWnd. �A��A��A\ ����2�������6C4�������������L��������OnParentNotify is called for all ancestor windows of the child window, including the top-level window. All child windows except those that have the WS_EX_NOPARENTNOTIFY style send this message to their parent windows. By default, child windows in a dialog box have the WS_EX_NOPARENTNOTIFY style unless the child window was created without this style by calling the CreateEx member function. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_PARENTNOTIFY message. 5�A��A) "��2�������See Also/���A�A ̀a�2�����������ؤ"����	�ۀ���'
������g�C����,�������L�������CWnd::CreateEx, CWnd::OnCreate, CWnd::OnDestroy, CWnd::OnLButtonDown, CWnd::OnMButtonDown, CWnd::OnRButtonDown, WM_PARENTNOTIFY, CWnd::Default �_��A��A1W�����������AB(BCWnd::OnQueryDragIconEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B�AB) "�2�2�������CWnd::OnQueryDragIcon��AB�AR&��A^B, (�L�r�=���~����afx_msg HCURSOR OnQueryDragIcon();)B�B& ��2������4^B�B) "��2�������Remarks���B�BG \�3�2���������H[�:����c������Called by a minimized (iconic) CWnd if it is about to be dragged by the user and it does not have an icon defined for its class. The system makes this call to obtain the cursor to display while the user drags the minimized window. If an application returns an icon handle, the system converts the icon to a black-and-white cursor. If an application returns a handle, the handle must identify a monochrome cursor or icon compatible with the display driver's resolution. The application can call the CWinApp::LoadCursor or CWinApp::LoadIcon member functions to load a cursor or icon from the resources in its executable file and to obtain this handle. ���B�B@ N�o�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_QUERYDRAGICON message. Returns���BLB3 4��2����������Returns a cursor or icon handle. If NULL is returned, the system displays the default cursor. The default return value is NULL. 5�B�B) "��2�������See Also�YLB(BN l���2����H[�:����c�������L�������CWinApp::LoadCursor, CWinApp::LoadIcon, WM_QUERYDRAGICON, CWnd::Default �a�B�B1&����������B�B�BCWnd::OnQueryEndSessionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")D(B�B) "�6�2�������CWnd::OnQueryEndSessionQ%�BOB, (�J�r�=���~����afx_msg BOOL OnQueryEndSession();)�BxB& ��2������4OB�B) "��2�������Remarks�GxB]
Bj ����2�������������!3���������L��������Called when the user chooses to end the Windows session or when an application calls the ExitWindows Windows function. If any application returns FALSE, the Windows session is not ended. Windows stops calling OnQueryEndSession as soon as one application returns FALSE, and sends the WM_ENDSESSION message with a parameter value of FALSE for any applications that have already returned TRUE. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_QUERYENDSESSION message. 4�B�
B) "��2�������Returns�_]
B"B2 4���2����������An application should return TRUE if it can be conveniently shut down; otherwise FALSE. 5�
BWB) "��2�������See Also�T"B�BH `���2����L�������!3��������CWnd::Default, ::ExitWindows, CWnd::OnEndSession, WM_QUERYENDSESSION �aWB�B1�����������B�Bp@BCWnd::OnQueryNewPaletteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")D�B�B) "�6�2�������CWnd::OnQueryNewPaletteQ%�B
B, (�J�r�=���~����afx_msg BOOL OnQueryNewPalette();)�BC
B& ��2������4
Bw
B) "��2�������Remarks��C
BQBY ���2��������������L�����������Called when the CWnd is about to receive the input focus. If the CWnd realizes its logical palette when it receives the input focus, it should return TRUE; otherwise, it should return FALSE. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_QUERYNEWPALETTE message. Returns}Hw
B�B5 :���2�����������TRUE if the CWnd realizes its logical palette; otherwise FALSE. 5QB@B) "��2�������See Also�B@B�Ba+�Bp@B6 <�V�2����L���������CWnd::Default, WM_QUERYNEWPALETTE �[@B�@B1�����������@B:AB�DBCWnd::OnQueryOpenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>p@B:AB) "�*�2�������CWnd::OnQueryOpenK�@B�AB, (�>�r�=���~����afx_msg BOOL OnQueryOpen();):AB�AB& ��2������4�AB�AB) "��2�������Remarks��AB�CBZ ��S�2���������������L�����������Called when the CWnd is iconized and the user requests that the CWnd be opened into a window. While in OnQueryOpen, CWnd should not perform any action that would cause an activation or focus change (for example, creating a dialog box). This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_QUERYOPEN message. Returns�V�ABjDB/ .���2���������TRUE if the icon can be opened, or FALSE to prevent the icon from being opened. 5�CB�DB) "��2�������See Also[%jDB�DB6 <�J�2����L���������CWnd::Default, WM_QUERYOPEN �_�DB�EB1�����������EB�EB0NBCWnd::OnRButtonDblClkEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B�DB�EB) "�2�2�������CWnd::OnRButtonDblClkzB�EBFFB8 @���r�=���~��������afx_msg void OnRButtonDblClk( UINT nFlags, CPoint point );)�EBoFB& ��2������KFFB�FB2 4�2�R�=��~Q�=�����ParameterDescription�{oFBdGB/ .���R�=��~�=�����nFlagsIndicates whether various virtual keys are down. This parameter can be any combination of the following values: G�FB�GB2 4�*�R����~Q�������ValueDescriptionD�dGB�HB\ ����R����~���������������������������MK_CONTROLSet if CONTROL key is down. MK_LBUTTONSet if left mouse button is down. MK_MBUTTONSet if middle mouse button is down. MK_RBUTTONSet if right mouse button is down. MK_SHIFTSet if SHIFT key is down. �|�GB�IB/ .���R�=��~�=�����pointSpecifies the x- and y-coordinates of the cursor. These coordinates are always relative to the upper-left corner. 4�HB�IB) "��2�������Remarks�_�IB�LBd ����2��������������,�����~7V����������Called when the user double-clicks the right mouse button. Only windows that have the CS_DBLCLKS WNDCLASS style can receive OnRButtonDblClk calls. This is the default for windows within the Microsoft Foundation Class Library. Windows calls OnRButtonDblClk when the user presses, releases, and then presses the right mouse button again within the system's double-click time limit. Double-clicking the right mouse button actually generates four events: a WM_RBUTTONDOWN  and WM_RBUTTONUP message, the OnRButtonDblClk call, and another WM_RBUTTONUP message when the button is released. ���IB�MB@ N�q�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_RBUTTONDBLCLK message. See Also�Y�LB0NBN l���2����,�����~7V�������L�������CWnd::OnRButtonDown, CWnd::OnRButtonUp, WM_RBUTTONDBLCLK, CWnd::Default �]�MB�NB1Q����������NB�NB�BCWnd::OnRButtonDownEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@0NB�NB) "�.�2�������CWnd::OnRButtonDownx@�NBvOB8 @���r�=���~��������afx_msg void OnRButtonDown( UINT nFlags, CPoint point );)�NB�OB& ��2������KvOB�B2 4�2�R�=��~Q�=�����ParameterDescription�OB�B0NB�{�OB��B/ .���R�=��~�=�����nFlagsIndicates whether various virtual keys are down. This parameter can be any combination of the following values: G�B��B2 4�*�R����~Q�������ValueDescriptionD���BA�B\ ����R����~���������������������������MK_CONTROLSet if CONTROL key is down. MK_LBUTTONSet if left mouse button is down. MK_MBUTTONSet if middle mouse button is down. MK_RBUTTONSet if right mouse button is down. MK_SHIFTSet if SHIFT key is down. �|��B�B/ .���R�=��~�=�����pointSpecifies the x- and y-coordinates of the cursor. These coordinates are always relative to the upper-left corner. 4A�B �B) "��2�������Remarks-��BM�BA P���2������L�����������Called when the user presses the right mouse button. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_RBUTTONDOWN message. See Also�Y �B�BN l���2����#S������~7V�������L�������CWnd::OnRButtonDblClk, CWnd::OnRButtonUp, WM_RBUTTONDOWN, CWnd::Default �[M�B��B1�����������B��B��BCWnd::OnRButtonUpEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>�B��B) "�*�2�������CWnd::OnRButtonUpv>��B4�B8 @�|�r�=���~��������afx_msg void OnRButtonUp( UINT nFlags, CPoint point );)��B]�B& ��2������K4�B��B2 4�2�R�=��~Q�=�����ParameterDescription�{]�BR�B/ .���R�=��~�=�����nFlagsIndicates whether various virtual keys are down. This parameter can be any combination of the following values: G��B��B2 4�*�R����~Q�������ValueDescriptionD�R�B݈B\ ����R����~���������������������������MK_CONTROLSet if CONTROL key is down. MK_LBUTTONSet if left mouse button is down. MK_MBUTTONSet if middle mouse button is down. MK_RBUTTONSet if right mouse button is down. MK_SHIFTSet if SHIFT key is down. �|��B��B/ .���R�=��~�=�����pointSpecifies the x- and y-coordinates of the cursor. These coordinates are always relative to the upper-left corner. 4݈B��B) "��2�������Remarks,���B�BA P���2������L�����������Called when the user releases the right mouse button. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_RBUTTONUP message. See Also�Y��B��BN l���2����#S������,�������L�������CWnd::OnRButtonDblClk, CWnd::OnRButtonDown, WM_RBUTTONUP, CWnd::Default �b�B"�B1����������"�Bg�B��BCWnd::OnRenderAllFormatsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")E��Bg�B) "�8�2�������CWnd::OnRenderAllFormatsR&"�B��B, (�L�r�=���~����afx_msg void OnRenderAllFormats();)g�B�B& ��2������4��B�B) "��2�������Remarks�g�BɏBL f���2����������6�����������The Clipboard owner's OnRenderAllFormats member function is called when the owner application is being destroyed. The Clipboard owner should render the data in all the formats it is capable of generating and pass a data handle for each format to the Clipboard by calling the SetClipboardData Windows function. This ensures that the Clipboard contains valid data even though the application that rendered the data is destroyed. The application should call the OpenClipboard member function before calling the SetClipboardData Windows function, and call the CloseClipboard Windows function afterward. ���B��B@ N�w�2�����L������ɏB��B��B�����This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_RENDERALLFORMATS message. See Also��ɏB��B[ ���2������6��������R_�������L�������::CloseClipboard, CWnd::OpenClipboard, ::SetClipboardData, CWnd::OnRenderFormat, WM_RENDERALLFORMATS, CWnd::Default �^��BC�B1���������C�B��Bj�BCWnd::OnRenderFormatEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")A��B��B) "�0�2�������CWnd::OnRenderFormatd2C�B��B2 4�d�r�=���~������afx_msg void OnRenderFormat( UINT nFormat );)��B�B& ��2������K��B\�B2 4�2�R�=��~Q�=�����ParameterDescription[,�B��B/ .�X�R�=��~�=�����nFormatSpecifies the Clipboard format. 4\�B��B) "��2�������Remarks�2��B|�B_ ��e�2����������6�����������L��������The Clipboard owner's OnRenderFormat member function is called when a particular format with delayed rendering needs to be rendered. The receiver should render the data in that format and pass it to the Clipboard by calling the SetClipboardData Windows function. Do not call the OpenClipboard member function or the CloseClipboard Windows function from within OnRenderFormat. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_RENDERFORMAT message. 5��B��B) "��2�������See Also�k|�Bj�BN l���2������6����������L�������::CloseClipboard, CWnd::OpenClipboard, ::SetClipboardData, WM_RENDERFORMAT, CWnd::Default �[��B��B1������������B4�B�CCWnd::OnSetCursorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>j�B4�B) "�*�2�������CWnd::OnSetCursor�N��B��B> L���r�=���~����������afx_msg BOOL OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message );)4�B��B& ��2������K��B4�B2 4�2�R�=��~Q�=�����ParameterDescriptiong��B��BL f�7�R�=��~�=��������]�Y5���������pWndSpecifies a pointer to the window that contains the cursor. The pointer may be temporary, and should not be stored for later use. nHitTestSpecifies the hit-test area code. The hit test determines the cursor's location. messageSpecifies the mouse message number. 44�B��B) "��2�������Remarksn��B=�BV z�1�2���������L���������������OnSetCursor is called if mouse input is not captured and the mouse causes cursor movement within the CWnd. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SETCURSOR message. By default, OnSetCursor calls the parent window's OnSetCursor before processing. If the parent window returns TRUE, further processing is halted. Calling the parent window gives the parent window control over the cursor's setting in a child window. �G��B��BY ����2������������������������By default, OnSetCursor also sets the cursor to an arrow if it is not in the client area, or to the registered-class cursor if it is. If nHitTest is HTERROR and message is a mouse button-down message, the MessageBeep member function is called. The message parameter is 0 when CWnd enters menu mode. Returns �=�BC? L���2�����L����������The return value is ignored by Windows, but is used by the Default member function when it calls the parent to determine if the parent handled the message. TRUE means that the message was handled; otherwise FALSE. ��BCj�B5��BAC) "��2�������See Also~<C�CB T�x�2�����HY�����L���������CWnd::OnNcHitTest, CWnd::Default, WM_SETCURSOR �ZACJC1����������JC�C/CCWnd::OnSetFocusEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=�C�C) "�(�2�������CWnd::OnSetFocusa/JC�C2 4�^�r�=���~������afx_msg void OnSetFocus( CWnd* pOldWnd );)�CC& ��2������K�C\C2 4�2�R�=��~Q�=�����ParameterDescription��C*C< F�%�R�=��~�=���������pOldWndContains the CWnd that loses the input focus (may be NULL). The pointer may be temporary, and should not be stored for later use. 4\C^C) "��2�������Remarksw0*C�CG \�a�2��������L�����������Called after gaining the input focus. To display a caret, CWnd should call the appropriate caret functions at this point. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SETFOCUS message. See AlsoZ$^C/C6 <�H�2����L���������CWnd::Default, WM_SETFOCUS �\�C�C1@����������C�C

CCWnd::OnShowWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?/C�C) "�,�2�������CWnd::OnShowWindowv>�CqC8 @�|�r�=���~��������afx_msg void OnShowWindow( BOOL bShow, UINT nStatus );)�C�C& ��2������KqC�C2 4�2�R�=��~Q�=�����ParameterDescription�N�C�CV z���R�=��~�=�������������
�E�������bShowSpecifies whether a window is being shown. It is TRUE if the window is being shown; it is FALSE if the window is being hidden. nStatusSpecifies the status of the window being shown. It is 0 if the message is sent because of a ShowWindow member function call; otherwise, nStatus is one of the following values: G�C�C2 4�*�R����}Q�������ValueDescription��C�	C8 >���R����}�����������SW_PARENTCLOSINGParent window is closing (being made iconic) or a pop-up window is being hidden. SW_PARENTOPENINGParent window is opening (being displayed) or a pop-up window is being shown. 4�C
C) "��2�������Remarksu)�	CyCL f�S�2��������
�E�����L��������Called when the CWnd is about to be hidden or shown. A window is hidden or shown when the ShowWindow member function is called, when an overlapped window is maximized or restored, or when an overlapped or pop-up window is closed (made iconic) or opened (displayed on the screen). When an overlapped window is closed, all pop-up windows associated with that window are hidden. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SHOWWINDOW message. 5
C�C) "��2�������See Also\&yC

C6 <�L�2����L���������CWnd::Default, WM_SHOWWINDOW �V�C�
C1h����������
C�
C�DCCWnd::OnSizeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")9

C�
C) "� �2�������CWnd::OnSizez<�
CDC> L�x�r�=���~����������afx_msg void OnSize( UINT nType, int cx, int cy );)�
CmC& ��2������KDC�C2 4�2�R�=��~Q�=�����ParameterDescription�gmCNC/ .���R�=��~�=�����nTypeSpecifies the type of resizing requested. This parameter can be one of the following values: G�C�C2 4�*�R�;�~Q�;�����ValueDescription��NC�AC\ ���R�;�~�;�������������������������SIZEFULLSCREEN�C�AC

CWindow has been maximized. SIZEICONICWindow has been minimized. SIZENORMALWindow has been resized, but neither SIZEICONIC nor SIZEFULLSCREEN applies. SIZEZOOMHIDEMessage is sent to all pop-up windows when some other window is maximized. SIZEZOOMSHOWMessage is sent to all pop-up windows when some other window has been restored to its former size. �f�CBC7 >���R�=��~�=���������cxSpecifies the new width of the client area. cySpecifies the new height of the client area. 4�ACQBC) "��2�������Remarks��BCFDCl ���2������O`������-�������������L�����������Called after the size has changed. If the SetScrollPos or MoveWindow member function is called for a child window from OnSize, the bRedraw parameter should be nonzero to cause the CWnd to be repainted. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SIZE message. See Also�NQBC�DCN l���2�����-������O`�����L���������CWnd::MoveWindow, CWnd::SetScrollPos, CWnd::Default, WM_SIZE �_FDCrEC1����������rEC�ECXMCCWnd::OnSizeClipboardEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B�DC�EC) "�2�2�������CWnd::OnSizeClipboard�HrEC4FC8 @���r�=���~��������afx_msg void OnSizeClipboard( CWnd* pClipAppWnd, HANDLE hRect );)�EC]FC& ��2������K4FC�FC2 4�2�R�c��~Q�c�����ParameterDescriptionW]FC�GC> J�3�R�c��~�c�����������pClipAppWndIdentifies the Clipboard-application window. The pointer may be temporary and should not be stored. hRectIdentifies a handle to a global memory object. The memory object contains a RECT data structure that specifies the area for the Clipboard owner to paint. 4�FC3HC) "��2�������Remarks��GCFJC@ N���2�������z����������The Clipboard owner's OnSizeClipboard member function is called by the Clipboard viewer when the Clipboard contains data with the CF_OWNERDISPLAY attribute and the size of the Clipboard-viewer window's client area has changed. The OnSizeClipboard member function is called with a null rectangle (0,0,0,0) as the new size when the Clipboard application is about to be destroyed or minimized. This permits the Clipboard owner to free its display resources. 
�3HCPLCR r�q�2��������������L��������Within OnSizeClipboard, an application must use the GlobalLock Windows function to lock the memory that contains the RECT data structure. Have the application unlock that memory by using the GlobalUnlock Windows function before it yields or returns control. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SIZECLIPBOARD message. 5FJC�LC) "��2�������See Also�PLCXMCT x���2������������3����L���������::GlobalLock, ::GlobalUnlock, ::SetClipboardData, CWnd::SetClipboardViewer, CWnd::Default, WM_SIZECLIPBOARD �_�LC�MC1����������MC*NC��CCWnd::OnSpoolerStatusEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")BXMC*NC) "�2�2�������CWnd::OnSpoolerStatusyA�MC�NC8 @���r�=���~��������afx_msg void OnSpoolerStatus( UINT nStatus, UINT nJobs );)*NC�NC& ��2������K�NCOC2 4�2�R�=��~Q�=�����ParameterDescription�{�NC�OC= J���R�=��~�=�����������nStatusSpecifies the SP_JOBSTATUS flag. nJobsSpecifies the number of jobs remaining in the Print Manager queue. 4OC�C) "��2�������Remarks�OC�CXMC�F�OC��CB R���2�������L�����������Called from Print Manager whenever a job is added to or removed from the Print Manager queue. This call is for informational purposes only. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SPOOLERSTATUS message. See Also_)�C��C6 <�R�2����L���������CWnd::Default, WM_SPOOLERSTATUS �Y��C��C1#�����������C��C��CCWnd::OnSysCharEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<��C��C) "�&�2�������CWnd::OnSysChar�J��CD�C> L���r�=���~����������afx_msg void OnSysChar( UINT nChar, UINT nRepCnt, UINT nFlags );)��Cm�C& ��2������KD�C��C2 4�2�R�=��~Q�=�����ParameterDescriptionJm�C�CF Z�	�R�=��~�=���������������nCharSpecifies the ASCII-character key code of a Control-menu key. nRepCntSpecifies the repeat count (the number of times the keystroke is repeated as a result of the user holding down the key). nFlagsThe nFlags parameter can have these values: G��CI�C2 4�*�R��?Q������ValueDescription7��C��C? L���R��?�������������������0-7Scan code (OEM-dependent value). Low byte of high-order word. 8Extended key, such as a function key or a key on the numeric keypad (1 if it is an extended key, 0 otherwise). 9-10Not used. 11-12Used internally by Windows. 13Context code (1 if the ALT key is held down while the key is pressed, 0 otherwise). 14Previous key state (1 if the key is down before the message is sent, 0 if the key is up). 15Transition state (1 if the key is being released, 0 if the key is being pressed). 4I�C��C) "��2�������RemarksN���C�CX ~���2�������B#/�����aaI������������Called if CWnd has the input focus and the WM_SYSKEYUP or WM_SYSKEYDOWN message is received. It specifies the virtual-key code of the Control-menu key. When the context code is 0, WM_SYSCHAR can pass the WM_SYSCHAR message to the TranslateAccelerator Windows function, which will handle it as though it were a normal key message instead of a system-key message. This allows accelerator keys to be used with the active window even if the active window does not have the input focus. ���C�Co ��-�2�����������6M��������������������For IBM Enhanced 101- and 102-key keyboards, enhanced keys are the right ALT and the right CONTROL keys on the main section of the keyboard; the INSERT, DELETE, HOME, END, PAGE UP, PAGE DOWN, and ARROW keys in the clusters to the left of the numeric keypad; and the slash (/) and ENTER keys in the numeric keypad. Some other keyboards may support the extended-key bit in nFlags. ���C��C@ N�e�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SYSCHAR message. See Also�a�C��CT x���2������aaI����B#/�����L���������::TranslateAccelerator, WM_SYSKEYDOWN, WM_SYSKEYUP, CWnd::Default, WM_SYSCHAR �`��C?�C1	���������?�C��C6�CCWnd::OnSysColorChangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")C��C��C) "�4�2�������CWnd::OnSysColorChangeP$?�CҎC, (�H�r�=���~����afx_msg void OnSysColorChange();)��C��C& ��2������4ҎC/�C) "��2�������Remarks4���Co�CB R���2����������L��������Called for all top-level windows when a change is made in the system color setting. Windows calls OnSysColorChange for any window that is a/�Co�C��Cffected by a system color change. Applications that have brushes that use the existing system colors should delete those brushes and re-create them by using the new system colors. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SYSCOLORCHANGE message. 5/�C��C) "��2�������See Also�Jo�C6�CH `���2������C�������L���������::SetSysColors, WM_PAINT, CWnd::Default, WM_SYSCOLORCHANGE �\��C��C1X�����������C�C)�CCWnd::OnSysCommandEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?6�C�C) "�,�2�������CWnd::OnSysCommands;��Cu�C8 @�v�r�=���~��������afx_msg void OnSysCommand( UINT nID, LONG lParam );)�C��C& ��2������Ku�C��C2 4�2�R�=��~Q�=�����ParameterDescription�k��C��C/ .���R�=��~�=�����nIDSpecifies the type of system command requested. This parameter can be one of the following values: G��C��C2 4�*�R��?}Q������ValueDescription6���C�C� �9�R��?}����������������������������������������������������SC_CLOSEClose CWnd. SC_HOTKEYActivate the CWnd associated with the application-specified hot key. SC_HSCROLLScroll horizontally. SC_KEYMENURetrieve a menu through a keystroke. SC_MAXIMIZE (or SC_ZOOM)Maximize CWnd. SC_MINIMIZE (or SC_ICON)Minimize CWnd. SC_MOUSEMENURetrieve a menu through a mouse click. SC_MOVEMove CWnd. SC_NEXTWINDOWMove to the next window. �Y��C��Cd ����R��?}������������������������������SC_PREVWINDOWMove to the previous window. SC_RESTORECheckpoint (save the previous coordinates). SC_SCREENSAVEExecutes the screen-save application specified in the Desktop section of the Control Panel. SC_SIZESize CWnd. SC_TASKLISTExecutes or activates the CWnd Task Manager application. SC_VSCROLLScroll vertically. ��C��C0 .���R�=��~�=�����lParamContains the cursor coordinates if a Control-menu command is chosen with the mouse. The low-order word contains the x-coordinate, and the high-order word contains the y-coordinate. Otherwise, this parameter is not used. 4��C�C) "��2�������Remarks���C �CZ ��}�2������L��������������������Called when the user selects a command from the Control menu or when the user selects the Maximize or Minimize button. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SYSCOMMAND message. By default, OnSysCommand carries out the Control-menu request for the predefined actions specified above. Applications that modify the Control menu must process WM_SYSCOMMAND messages, and any WM_SYSCOMMAND messages not handled by the application must be passed on to OnSysCommand. Any command values added by an application must be processed by the application and cannot be passed to OnSysCommand. �`�C��CM h���2������������H���������An application can carry out any system command at any time by passing a WM_SYSCOMMAND message to OnSysCommand. Access (sometimes called "accelerator") keystrokes that are defined to select items from the Control menu are translated into OnSysCommand calls; all other access keystrokes are translated into WM_COMMAND messages. See Also\& �C)�C6 <�L�2����L���������CWnd::Default, WM_SYSCOMMAND �]��C��C1m�����������CDCDCWnd::OnSysDeadCharEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@)�CD) "�.�2�������CWnd::OnSysDeadChar��CD)�C�N��C�D> L���r�=���~����������afx_msg void OnSysDeadChar( UINT nChar, UINT nRepCnt, UINT nFlags );)D�D& ��2������K�DD2 4�2�R�=��~Q�=�����ParameterDescription��D#D@ N���R�=��~�=�������������nCharSpecifies the dead-key character value. nRepCntSpecifies the repeat count. nFlagsSpecifies the scan code, key-transition code, previous key state, and context code, as shown in the following list: GDjD2 4�*�R��?Q������ValueDescription,�#D�D? L���R��?�������������������0-7Scan code (OEM-dependent value). Low byte of high-order word. 8Extended key, such as a function key or a key on the numeric keypad (1 if it is an extended key, 0 otherwise). 9-10Not used. 11-12Used internally by Windows. 13Context code (1 if the ALT key is held down while the key is pressed, 0 otherwise). 14Previous key state (1 if the key is down before the call, 0 if the key is up). 15Transition state (1 if the key is being released, 0 if the key is being pressed). 4jD�D) "��2�������Remarks�U�D~D_ ����2�������B#/�����aaI�����L�����������Called if CWnd has the input focus when the OnSysKeyUp or OnSysKeyDown member functions are called. It specifies the character value of a dead key. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SYSDEADCHAR message. See Also�k�DCDZ ����2����aaI����B#/�����L�������;Q�=������CWnd::OnSysKeyDown, CWnd::OnSysKeyUp, CWnd::Default, WM_SYSDEADCHAR, CWnd::OnDeadChar �\~D�D1T����������DD FDCWnd::OnSysKeyDownEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?CDD) "�,�2�������CWnd::OnSysKeyDown�M�D�D> L���r�=���~����������afx_msg void OnSysKeyDown( UINT nChar, UINT nRepCnt, UINT nFlags );)D�D& ��2������K�D	D2 4�2�R�=��~Q�=�����ParameterDescription(��D6
D@ N���R�=��~�=�������������nCharSpecifies the virtual-key code of the key being pressed. nRepCntSpecifies the repeat count. nFlagsSpecifies the scan code, key-transition code, previous key state, and context code, as shown in the following list: G	D}
D2 4�*�R��?Q������ValueDescription7�6
D�D? L���R��?�������������������0-7Scan code (OEM-dependent value). Low byte of high-order word. 8Extended key, such as a function key or a key on the numeric keypad (1 if it is an extended key; otherwise 0). 9-10Not used. 11-12Used internally by Windows. 13Context code (1 if the ALT key is held down while the key is pressed, 0 otherwise). 14Previous key state (1 if the key is down before the message is sent, 0 if the key is up). 15Transition state (1 if the key is being released, 0 if the key is being pressed). .�}
D�
D9 @���R�=��~�=��������For OnSysKeyDown calls, the key-transition bit (bit 15) is 0. The context-code bit (bit 13) is 1 if the ALT key is down while the key is pressed; it is 0 if the message is sent to the active window because no window has the input focus. 4�DD) "��2�������RemarksA��
DcAD^ ����2�������������������������If the CWnd has the input focus, the OnSysKeyDown member function is called when the user holds down the ALT key and then presses another key. If no window currently has the input focus, the active window's OnSysKeyDown member function is called. The CWnd that receives the message can distinguish between these two contexts by checking the context code in nFlags. When the context DcADCDcode is 0, the WM_SYSKEYDOWN message received by OnSysKeyDown can be passed to the TranslateAccelerator Windows function, which will handle it as though it were a normal key message instead of a system-key message. This allows accelerator keys to be used with the active window even if the active window does not have the input focus. /�D�DD� ހO�2�������B#/��������������6M��������������������Because of auto-repeat, more than one OnSysKeyDown call may occur before the WM_SYSKEYUP message is received. The previous key state (bit 14) can be used to determine whether the OnSysKeyDown call indicates the first down transition or a repeated down transition. For IBM Enhanced 101- and 102-key keyboards, enhanced keys are the right ALT and the right CONTROL keys on the main section of the keyboard; the INSERT, DELETE, HOME, END, PAGE UP, PAGE DOWN, and ARROW keys in the clusters to the left of the numeric keypad; and the slash (/) and ENTER keys in the numeric keypad. Some other keyboards may support the extended-key bit in nFlags. ��cAD�ED@ N�k�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SYSKEYDOWN message. See Also�Q�DD FDH `���2������B#/�����L���������::TranslateAccelerator, WM_SYSKEYUP, CWnd::Default, WM_SYSKEYDOWN �Z�ED�FD1^����������FD�FD!�DCWnd::OnSysKeyUpEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")= FD�FD) "�(�2�������CWnd::OnSysKeyUp�K�FDqGD> L���r�=���~����������afx_msg void OnSysKeyUp( UINT nChar, UINT nRepCnt, UINT nFlags );)�FD�GD& ��2������KqGD�GD2 4�2�R�=��~Q�=�����ParameterDescription(��GD
ID@ N���R�=��~�=�������������nCharSpecifies the virtual-key code of the key being pressed. nRepCntSpecifies the repeat count. nFlagsSpecifies the scan code, key-transition code, previous key state, and context code, as shown in the following list: G�GDTID2 4�*�R��?Q������ValueDescription7�
ID�KD? L���R��?�������������������0-7Scan code (OEM-dependent value). Low byte of high-order word. 8Extended key, such as a function key or a key on the numeric keypad (1 if it is an extended key; otherwise 0). 9-10Not used. 11-12Used internally by Windows. 13Context code (1 if the ALT key is held down while the key is pressed, 0 otherwise). 14Previous key state (1 if the key is down before the message is sent, 0 if the key is up). 15Transition state (1 if the key is being released, 0 if the key is being pressed). ,�TID�LD9 @���R�=��~�=��������For OnSysKeyUp calls, the key-transition bit (bit 15) is 1. The context-code bit (bit 13) is 1 if the ALT key is down while the key is pressed; it is 0 if the message is sent to the active window because no window has the input focus. 4�KD�LD) "��2�������Remarks<��LD3�D^ ����2�������������������������If the CWnd has the focus, the OnSysKeyUp member function is called when the user releases a key that was pressed while the ALT key was held down. If no window currently has the input focus, the active window's OnSysKeyUp member function is called. The CWnd that receives the call can distinguish between these two contexts by checking the context code in nFlags. When the context code is 0, the WM_SYSKEYUP message received by OnSysKeyUp can be passed to the TranslateAccelerator Windows function, which will handle it as though it were a normal key message instead of a system-key message. This allows accelerator keys to be used with the active window even if the active w�LD3�D FDindow does not have the input focus. ��LD8�Do ��-�2�����������6M��������������������For IBM Enhanced 101- and 102-key keyboards, enhanced keys are the right ALT and the right CONTROL keys on the main section of the keyboard; the INSERT, DELETE, HOME, END, PAGE UP, PAGE DOWN, and ARROW keys in the clusters to the left of the numeric keypad; and the slash (/) and ENTER keys in the numeric keypad. Some other keyboards may support the extended-key bit in nFlags. 
�3�DE�D9 @���2������������For non-USA Enhanced 102-key keyboards, the right ALT key is handled as a CONTROL-ALT key. The following shows the sequence of messages and calls that result when the user presses and releases this key: _-8�D��D2 4�Z���Q�7	������SequenceFunction accessedMessage passed�yE�D��Dz Ā��R�	�}�7	���� *���������� *���������YpZ����������������1.WM_KEYDOWNVK_CONTROL 2.WM_KEYDOWNVK_MENU 3.WM_KEYUPVK_CONTROL 4.WM_SYSKEYUPVK_MENU ����D��D? L�g�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_SYSKEYUP message. See Also�Q��D!�DG ^��������aaI����L���������::TranslateAccelerator, WM_SYSKEYDOWN, CWnd::Default, WM_SYSKEYUP �\��D��D1������������D�D^�DCWnd::OnTimeChangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>!�D�D(  �,�������CWnd::OnTimeChangeL ��D8�D, (�@�r�=���~����afx_msg void OnTimeChange();)�Da�D& ��2������48�D��D) "��2�������Remarks!�a�D��DM h���2�������������L��������Called after the system time is changed. Have any application that changes the system time send this message to all top-level windows. To send the WM_TIMECHANGE message to all top-level windows, an application can use the SendMessage Windows function with the hWnd parameter set to 0xFFFF. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_TIMECHANGE message. 5��D�D) "��2�������See Alsos7��D^�D< H�n�2������L���������::SendMessage, CWnd::Default, WM_TIMECHANGE �W�D�D1q����������D �D`�DCWnd::OnTimerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')"):^�D �D) "�"�2�������CWnd::OnTimer^,�D~�D2 4�X�r�=���~������afx_msg void OnTimer( UINT nIDEvent );) �D��D& ��2������K~�D�D2 4�2�R�=��~Q�=�����ParameterDescriptionc4��DU�D/ .�h�R�=��~�=�����nIDEventSpecifies the identifier of the timer. 4�D��D) "��2�������Remarks`U�D�DM h�'�2�������������L�����������Called after each interval specified in the SetTimer member function used to install a timer. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_TIMER message. See Alsow5��D`�DB T�j�2�������������L�������CWnd::SetTimer, WM_TIMER, CWnd::Default �\�D�D1�����������D,�D�DCWnd::OnVKeyToItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?`�D,�D) "�,�2�������CWnd::OnVKeyToItem�M�D��D> L���r�=���~����������afx_msg int OnVKeyToItem( UINT nKey, CWnd* pListBox, UINT nIndex );),�D��D& ��2������K��D7�D2 4�2�R�=��D7�D`�D��~Q�=�����ParameterDescription	���D@�D@ N���R�=��~�=�������������nKeySpecifies the virtual-key code of the key that the user pressed. pListBoxSpecifies a pointer to the list box. The pointer may be temporary. nIndexSpecifies the current caret position. 47�Dt�D) "��2�������Remarks�W@�D*�D_ ����2�������pCC���������L�����������If the CWnd owns a list box with the LBS_WANTKEYBOARDINPUT style, the list box will send the WM_VKEYTOITEM message in response to a WM_KEYDOWN message. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_VKEYTOITEM message. Returns+t�DU�D' �	�2������Specifies the action that the application performed in response to the message. A return value of -2 indicates that the application handled all aspects of selecting the item and wants no further action by the list box. A return value of -1 indicates that the list box should perform the default action in response to the keystroke. A return value of 0 or greater specifies the index of an item in the list box and indicates that the list box should perform the default action for the keystroke on the given item. 5*�D��D) "��2�������See Alsox6U�D�DB T�l�2����� *������L�������WM_KEYDOWN, WM_VKEYTOITEM, CWnd::Default �Y��D��D1:	�����������D��DECWnd::OnVScrollEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<�D��D) "�&�2�������CWnd::OnVScroll�T��DZ�D> L���r�=���~����������afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar );)��D��D& ��2������KZ�D��D2 4�2�R�=��~Q�=�����ParameterDescription����D��D0 .��R�=��~�=�����nSBCodeContains a scroll-bar code that specifies the user's scrolling request. This parameter can be one of the following values: G��D��D2 4�*�R�i��}Q�i�����ValueDescription"���D��D| ƀM�R�i��}�i�����������������������������������������SB_BOTTOMScroll to bottom. SB_ENDSCROLLEnd scroll. SB_LINEDOWNScroll one line down. SB_LINEUPScroll one line up. SB_PAGEDOWNScroll one page down. SB_PAGEUPScroll one page up. SB_THUMBPOSITIONScroll to the absolute position. The current position is provided in nPos. SB_THUMBTRACKDrag scroll box to specified position. The current position is provided in nPos. SB_TOPScroll to top. �^��D��DJ b���R�=��~�=���������������nPosContains the scroll-box position if the scroll-bar code is SB_THUMBPOSITION; otherwise, not used. pScrollBarIf the message is sent by a scroll-bar control, pScrollBar identifies the control. If the message is sent as a result of the user clicking a pop-up window's scroll bar, pScrollBar is not used. The pointer may be temporary. 4��D��D) "��2�������Remarks4���D��DZ ����2�������������O`������L��������Called when the user clicks a vertical scroll bar. OnVScroll typically is used by applications that give some feedback while the scroll box is being dragged. If OnVScroll scrolls the contents of CWnd, it must also reset the position of the scroll box by using the SetScrollPos member function. This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_VSCROLL message. 5��D3�D) "��2�������See Also�P��DEN l���2����O`�����x|	6������L�������CWnd::SetScrollPos, CWnd::OnHScroll, WM_VSCROLL, CWnd::Default 3�DE�D�b3�D�E11	����������E�E�	ECWnd::OnVScrollClipboardEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")EE�E) "�8�2�������CWnd::OnVScrollClipboard�X�EzE> L���r�=���~����������afx_msg void OnVScrollClipboard( CWnd* pClipAppWnd, UINT nSBCode, UINT nPos );)�E�E& ��2������KzE�E2 4�2�R�c��~Q�c�����ParameterDescription���E�E8 >�9�R�c��~�c���������pClipAppWndSpecifies a pointer to a Clipboard-viewer window. The pointer may be temporary. nSBCodeSpecifies one of the following scroll-bar codes: G�E	E2 4�*�R����}Q�������ValueDescription�N�E�En ����R����}�������������������������������������SB_BOTTOMScroll to lower right. SB_ENDSCROLLEnd scroll. SB_LINEDOWNScroll one line down. SB_LINEUPScroll one line up. SB_PAGEDOWNScroll one page down. SB_PAGEUPScroll one page up. SB_THUMBPOSITIONScroll to the absolute position. The current position is provided in nPos. SB_TOPScroll to upper left. �w	EwE; F���R�c��~�c���������nPosContains the scroll box position if the scroll-bar code is SB_THUMBPOSITION; otherwise, nPos is not used. 4�E�E) "��2�������RemarksjwEE^ ���2���������z����������|�$����)�B������If the CWnd owns the Clipboard, the OnVScrollClipboard member function is called by the Clipboard viewer when the Clipboard data has the CF_OWNERDISPLAY format and there is an event in the Clipboard viewer's vertical scroll bar. OnVScrollClipboard should scroll the Clipboard image, invalidate the appropriate section, and update the scroll-bar values. The Clipboard owner should use the Invalidate or InvalidateRect member function or repaint as desired. The scroll-bar position should also be reset. ���E	E@ N�w�2�����L�����������This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_VSCROLLCLIPBOARD message. See Also�zE�	EZ ����2�����|�$���㢼������)�B�������L�������CWnd::Invalidate, CWnd::OnHScrollClipboard, CWnd::InvalidateRect, WM_VSCROLLCLIPBOARD, CWnd::Default �^	Es
E1����������s
E�
EAECWnd::OnWinIniChangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")A�	E�
E) "�0�2�������CWnd::OnWinIniChangeg5s
EE2 4�j�r�=���~������afx_msg void OnWinIniChange( LPSTR lpSection );)�
EDE& ��2������KE�E2 4�2�R�=��~Q�=�����ParameterDescription��DEKE0 .��R�=��~�=�����lpSectionPoints to a string that specifies the name of the section that has changed (the string does not include the square brackets). 4�EE) "��2�������RemarksUKE�ES t��2����������������������Called after a change has been made to the Windows initialization file, WIN.INI. To send the WM_WININICHANGE message to all top-level windows, an application can use the SendMessage Windows function with the hWnd parameter set to 0xFFFF. If an application changes many different sections in WIN.INI at the same time, the application should send one WM_WININICHANGE message with lpSection set to NULL. Otherwise, an application should send WM_WININICHANGE each time it makes a change to WIN.INI. �^E�@ES t���2������������L�����������If an application receives an OnWinIniChange call with lpSection set to NULL, the application should check all sections in WIN.INI that affect the application. This message-handler member function calls the �E�@E�	EDefault member function. Override this member function in your derived class to handle the WM_WININICHANGE message. See Alsou9�EAE< H�r�2��������L�������::SendMessage, WM_WININICHANGE, CWnd::Default �]�@E�AE1y����������AE�AEEECWnd::OpenClipboardEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@AE�AE) "�.�2�������CWnd::OpenClipboardE�AEBE, (�2�r�=���~����BOOL OpenClipboard();)�AEBBE& ��2������4BEvBE) "��2�������RemarksSBBE�CEA P�%�2����������������Opens the Clipboard. Other applications will not be able to modify the Clipboard until the CloseClipboard Windows function is called. The current CWnd object will not become the owner of the Clipboard until the EmptyClipboard Windows function is called. Returns�vvBEtDE5 :���2�����������TRUE if the Clipboard is opened via CWnd, or FALSE if another application or window has the Clipboard opened. 5�CE�DE) "��2�������See Alsos=tDEEE6 <�z�2������������::CloseClipboard, ::EmptyClipboard, ::OpenClipboard �X�DE�EE1x����������EE�EE'HECWnd::OpenIconEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");EE�EE) "�$�2�������CWnd::OpenIcon@�EE FE, (�(�r�=���~����BOOL OpenIcon();)�EEIFE& ��2������4 FE}FE) "��2�������Remarks��IFE+GE. *��2���������Activates and displays a minimized (iconic) window. Windows restores the window to its original size and position. Returnsj;}FE�GE/ .�v�2���������TRUE if the function is successful; otherwise FALSE. 5+GE�GE) "��2�������See Also]'�GE'HE6 <�N�2�����㪓k������::OpenIcon, CWnd::CloseWindow �[�GE�HE1�����������HE�HEOOECWnd::PostMessageEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>'HE�HE) "�*�2�������CWnd::PostMessage�M�HE|IE> L���r�=���~����������BOOL PostMessage( UINT message, UINT wParam = 0, LONG lParam = 0 );)�HE�IE& ��2������K|IE�IE2 4�2�R�=��~Q�=�����ParameterDescription^�IENKE@ N�=�R�=��~�=�������������messageSpecifies the message to be posted. wParamSpecifies additional message information. The content of this parameter depends on the message being posted. lParamSpecifies additional message information. The content of this parameter depends on the message being posted. 4�IE�KE) "��2�������Remarks.�NKE�MES t���2���������������p�N��������Places a message in the current CWnd object's message queue, and then returns without waiting for the corresponding window to process the message. Messages in a message queue are retrieved by calls to the GetMessage or PeekMessage Windows functions. An application should never use the PostMessage member function to send a message to a control; it should use SendDlgItemMessage. The Windows PostMessage function can be used to access another application. 4�KE�ME) "��2�������Returnse6�MEINE/ .�l�2���������TRUE if the message is posted; otherwise FALSE. 5�ME~NE) "��2�������See Also�}INEOOET x���2�������������'-�����p�N������::GetMessage, ::PeekMessage, ::PostMessage, ::PostAppMessage, CWnd::SendMessage, CWnd::SendDlgItemMessage �c~NE�E1G����������ER�E-�ECWnd::PreTranslateMessageEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")OOE�EOOEFOOER�E) "�:�2�������CWnd::PreTranslateMessageq?�EÀE2 4�~�r�=���~������Protected: virtual BOOL PreTranslateMessage( MSG* pMsg );)R�E�E& ��2������KÀE7�E2 4�2�R�=��~Q�=�����ParameterDescription�K�E��E5 :���R�=��~�=�������pMsgPoints to a MSG structure that contains the message to process. 47�E�E) "��2�������Remarks����E��E@ N��2�����J�Q����������Used by class CWinApp to translate window messages before they are dispatched by the DispatchMessage Windows function. Returns���Em�E0 .��2���������TRUE if the message is translated and should not be dispatched; FALSE if the message was not translated and should be dispatched. 5��E��E) "��2�������See Also�Om�E-�E< H���2��������X�1������::TranslateMessage, ::IsDialogMessage, CWinApp::PreTranslateMessage �Y��E��E1�����������E�E�ECWnd::ReleaseDCEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<-�E�E) "�&�2�������CWnd::ReleaseDCR ��EE�E2 4�@�r�=���~������int ReleaseDC( CDC* pDC );)�En�E& ��2������KE�E��E2 4�2�R�=��~Q�=�����ParameterDescriptione6n�E�E/ .�l�R�=��~�=�����pDCIdentifies the device context to be released. 4��ER�E) "��2�������Remarks��Ej�EL f���2�����������;����(Uc�����Releases a device context, freeing it for use by other applications. The effect of the ReleaseDC member function depends on the device-context type. It only frees common and window device contexts. It has no effect on class or private device contexts. The application must call the ReleaseDC member function for each call to the GetWindowDC member function and for each call to the GetDC member function that retrieves a common device context. 4R�E��E) "��2�������Returns�mj�E1�E& ���2������Specifies whether the device context is released. It is 1 if the device context is released; otherwise 0. 5��Ef�E) "��2�������See Also{91�E�EB T�r�2����(Uc�����;��������CWnd::GetDC, CWnd::GetWindowDC, ::ReleaseDC �^f�Ep�E1_���������p�E��E�ECWnd::ScreenToClientEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")A�E��E) "�0�2�������CWnd::ScreenToClient�cp�ES�E? N���r�=���~�����������void ScreenToClient( LPPOINT lpPoint ) const;void ScreenToClient( LPRECT lpRect ) const;)��E|�E& ��2������KS�ENjE2 4�2�R�=��~Q�=�����ParameterDescription$�|�E�EP n���R�=��~�=�����������������lpPointPoints to a CPoint or POINT structure that contains the screen coordinates to be converted. lpRectPoints to a CRect or RECT structure that contains the screen coordinates to be converted. 4NjE�E) "��2�������Remarks%��ED�EM h���2��������������������Converts the screen coordinates of a given point or rect on the display to client coordinates. The ScreenToClient member function uses CWnd and the screen coordinates given in lpPoint or lpRect to compute client coordinates, and then replaces the screen coordinates with the client coordinates. The new coordinates are relative to the upper-left corner of the CWnd client area. The ScreenToClient formula assumes the given point is in screen coordinates. 5�Ey�E) "��2�������See Alsof0D�E�E6 <�`�2�����Vu��������CWnd::ClientToScreen, ::ScreenToClient y�E�E�E�\y�E��E1������������E��EG�ECWnd::ScrollWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?�E��E) "�,�2�������CWnd::ScrollWindow�j��E��ED X���r�=���~������������void ScrollWindow( int xAmount, int yAmount, LPRECT lpRect = NULL, LPRECT lpClipRect = NULL );)��E��E& ��2������K��E��E2 4�2�R�=��~Q�=�����ParameterDescription�*��E��Ex ��U�R�=��~�=���������������������������������xAmountSpecifies the amount (in device units) to scroll in the x-axis direction. yAmountSpecifies the amount (in device units) to scroll in the y-axis direction. lpRectPoints to a CRect or RECT structure that specifies the portion of the client area to be scrolled. If lpRect is NULL, the entire client area is scrolled. lpClipRectPoints to a CRect or RECT structure that specifies the clipping rectangle to be scrolled. Only bits inside this rectangle are scrolled. If lpClipRect is NULL, the entire window is scrolled. 4��E��E) "��2�������Remarks�R��Et�ER r���2���������������������Scrolls the current CWnd object by moving the contents of the window's client area the number of units specified by xAmount along the screen's x-axis and the number of units specified by yAmount along the y-axis. The scroll moves right if xAmount is positive and left if it is negative. The scroll moves down if yAmount is positive and up if it is negative. If the caret is in the CWnd being scrolled, ScrollWindow automatically hides the caret to prevent it from being erased, then restores the caret after the scroll is finished. The caret position is adjusted accordingly. �w��Eg�E| ƀ��2������������y�������������������������The area uncovered by the ScrollWindow member function is not repainted, but is combined into the current CWnd object's update region. The WM_PAINT message will be sent, notifying it that the region needs repainting. To repaint the uncovered area at the same time the scrolling is done, call the UpdateWindow member function immediately after calling ScrollWindow. If lpRect is NULL, the positions of any child windows in the window are offset by the amount specified by xAmount and yAmount, and any invalid (unpainted) areas in the CWnd are also offset. ScrollWindow is faster when lpRect is NULL. ~t�E��Ed ��5�2����������������y�������������If lpRect is not NULL, the positions of child windows are not changed, and invalid areas in CWnd are not offset. To prevent updating problems when lpRect is not NULL, call the UpdateWindow member function to repaint CWnd before calling ScrollWindow. See Alsob,g�EG�E6 <�X�2�����y���������CWnd::UpdateWindow, ::ScrollWindow �b��E��E1������������E�E�FCWnd::SendDlgItemMessageEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")EG�E�E) "�8�2�������CWnd::SendDlgItemMessage�_��E��ED X���r�=���~������������LONG SendDlgItemMessage( int nID, UINT message, UINT wParam = 0, LONG lParam = 0 );)�E��E& ��2������K��E6�E2 4�2�R�=��~Q�=�����ParameterDescription�n��EFH ^���R�=��~�=�����������������nIDSpecifies the integer identifier of the dialog item that is to receive the message. messageSpecifies the message value. wParamSpecifies additional message information. The content of this parameter depends on the message being sent. lParamSpecifies additional message information. The content of this parameter depends on the message being sent. 6�EFG�E46�E@F) "��2�������RemarkskF�FN j�;�2��������������'-��������Sends a message to the specified control. The SendDlgItemMessage member function does not return until the message has been processed. Using SendDlgItemMessage is identical to obtaining a CWnd* to the given control and calling the SendMessage member function. Returns�p@FAF& ���2������Specifies the value returned by the control's window procedure, or 0 if the control identifier is not valid. 5�FvF) "��2�������See Alsog1AF�F6 <�b�2�����'-��������CWnd::SendMessage, ::SendDlgItemMessage �[vFiF1����������iF�FG	FCWnd::SendMessageEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>�F�F) "�*�2�������CWnd::SendMessage�MiF2F> L���r�=���~����������LONG SendMessage( UINT message, UINT wParam = 0, LONG lParam = 0 );)�F[F& ��2������K2F�F2 4�2�R�=��~Q�=�����ParameterDescriptionX[F�F@ N�1�R�=��~�=�������������messageSpecifies the message to be sent. wParamSpecifies additional message information. The content of this parameter depends on the message being sent. lParamSpecifies additional message information. The content of this parameter depends on the message being sent. 4�F2F) "��2�������Remarks�f�F�FL f���2���������MT�<����������Sends a message to a window or windows. The SendMessage member function calls the window procedure for the current CWnd object and does not return until that window procedure has processed the message. This is in contrast to the PostMessage member function which places the message into the CWnd message queue and returns immediately. Returns�e2FoF& ���2������The result returned by the invoked window procedure; its value depends on the message being sent. 5�F�F) "��2�������See Also�[oFG	FH `���2������MT�<�����p�N��������::InSendMessage, CWnd::PostMessage, CWnd::SendDlgItemMessage, ::SendMessage �_�F�	F1M����������	F
F5
FCWnd::SetActiveWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")BG	F
F) "�2�2�������CWnd::SetActiveWindowH�	Fa
F, (�8�r�=���~����CWnd* SetActiveWindow();)
F�
F& ��2������4a
F�
F) "��2�������Remarks3��
F�F; D���2��������������Makes CWnd the active window. The SetActiveWindow member function should be used with care since it allows an application to arbitrarily take over the active window and input focus. Normally, Windows takes care of all activation. Returns`:�
FQF& �t�2������The identity of the window that was previously active. |O�F�F- *���2���������The returned pointer may be temporary, and should not be stored. See Alsoh2QF5
F6 <�d�2������r�d������::SetActiveWindow, CWnd::GetActiveWindow �Z�F�
F1)����������
F�
F�AFCWnd::SetCaptureEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=5
F�
F) "�(�2�������CWnd::SetCaptureC�
F@F, (�.�r�=���~����CWnd* SetCapture();)�
FiF& ��2������4@F�F) "��2�������Remarkse$iF@FA P�I�2����������������Causes all subsequent mouse input to be sent to the current CWnd object, regardless of the position of the cursor. When CWnd no longer requires all mouse input, the application should call the ReleaseCapture Windows function so that other windows can receive mouse input. Returns�F@F5
F���F�@F- (�m�2��������A pointer to the window object that previously received all mouse input. It is NULL if there is no such window. The returned pointer may be temporary, and should not be stored. 5@F&AF) "��2�������See Alsox<�@F�AF< H�x�2�����������������::ReleaseCapture, ::SetCapture, CWnd::GetCapture �[&AF*BF1}���������*BFhBF�FFCWnd::SetCaretPosEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>�AFhBF) "�*�2�������CWnd::SetCaretPos_-*BF�BF2 4�Z�r�=���~������static void SetCaretPos( POINT point );)hBF�BF& ��2������K�BF;CF2 4�2�R�=��~Q�=�����ParameterDescriptionuF�BF�CF/ .���R�=��~�=�����pointSpecifies the new logical x- and y-coordinate of the caret. 4;CF�CF) "��2�������Remarks;��CFFFA P���2����������������Moves the caret to the position given by logical coordinates specified by point. Logical coordinates are relative to the client area and are affected by the mapping mode, so the exact position in pixels depends on this mapping mode. The SetCaretPos member function moves the caret only if it is owned by a window in the current task. SetCaretPos moves the caret whether or not the caret is hidden. The caret is a shared resource. A CWnd should not move the caret if it does not own the caret. 5�CFTFF) "��2�������See Also`*FF�FF6 <�T�2�����z׀�������CWnd::GetCaretPos, ::SetCaretPos �bTFFGGF1����������GGF�GF;MFCWnd::SetClipboardViewerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")E�FF�GF) "�8�2�������CWnd::SetClipboardViewerJGGF�GF, (�<�r�=���~����HWND SetClipboardViewer();)�GF�GF& ��2������4�GF3HF) "��2�������Remarks�X�GFKFw ����2�����������e:������L€���	�ۀ�����e:������������Adds CWnd to the Clipboard-viewer chain and returns a handle to the next window in the chain. A CWnd that is part of the Clipboard-viewer chain must respond to WM_DRAWCLIPBOARD, WM_CHANGECBCHAIN, and WM_DESTROY messages, and pass the message to the next window in the chain. This member function sends a WM_DRAWCLIPBOARD message to the CWnd. Since the handle to the next window in the Clipboard-viewer chain has not yet been returned, the application should be careful to not pass on the WM_DRAWCLIPBOARD message that it receives during the call to SetClipboardViewer. ��3HF�KF: B�'�2����ぜ���������If an application wishes to remove itself from the Clipboard-viewer chain, it must call the ChangeClipboardChain member function. Returns��KF�LF' �A�2������A handle to the next window in the Clipboard-viewer chain. This handle should be saved in static memory and used to pass on Clipboard-viewer chain messages. 5�KF�LF) "��2�������See Alsop:�LF;MF6 <�t�2���ぜ���������CWnd::ChangeClipboardChain, ::SetClipboardViewer �]�LF�MF1�����������MF	NF��FCWnd::SetDlgItemIntEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@;MF	NF) "�.�2�������CWnd::SetDlgItemInt�L�MF�NFD X���r�=���~������������void SetDlgItemInt( int nID, UINT nValue, BOOL bSigned = TRUE );)	NF�NF& ��2������K�NF
OF2 4�2�R�=��~Q�=�����ParameterDescription���NF�F@ N�U�R�=��~�=�������������nIDSpecifies the integer ID of the control to be modified. nValueSpecifies the value to be set. bSignedSpecifies whether or not the integer value is signed. 
OF�F;MF4
OF@�F) "��2�������Remarks���F<�FY ��G�2������������������������Sets the text of a control to the string that represents the integer value given by nValue. The SetDlgItemInt member function converts nValue to a string that consists of decimal digits, and then copies the string to the control. If bSigned is TRUE, nValue is assumed to be signed. If nValue is signed and less than 0, the function places a minus sign before the first digit in the string. See Alsox<@�F��F< H�x�2����E&�Q����������CWnd::GetDlgItemInt, ::SetDlgItemInt, WM_SETTEXT �^<�FC�F1,���������C�F��F�FCWnd::SetDlgItemTextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")A��F��F) "�0�2�������CWnd::SetDlgItemTextyAC�F��F8 @���r�=���~��������void SetDlgItemText( int nID, const char FAR* lpString );)��F&�F& ��2������K��Fq�F2 4�2�R�=��~Q�=�����ParameterDescription��&�FY�F> J�U�R�=��~�=�����������nIDSpecifies the integer ID of the control whose text is to be set. lpStringPoints to a CString or null-terminated string that is to be copied to the control. 4q�F��F) "��2�������RemarksxEY�F�F3 6���2�����������Sets the caption or text of a control owned by CWnd. See Alsoz>��F�F< H�|�2�������㷅��������::SetDlgItemText, WM_SETTEXT, CWnd::GetDlgItemText �X�F�F1/����������FC�FA�FCWnd::SetFocusEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");�FC�F) "�$�2�������CWnd::SetFocusA�F��F, (�*�r�=���~����CWnd* SetFocus();)C�F��F& ��2������4��F�F) "��2�������Remarks�C��F��F} Ȁ��2�����������������������n�h�����aaI����B#/������Claims the input focus. The input focus directs all subsequent keyboard input to CWnd. The window, if any, that previously had the input focus loses it. The SetFocus member function sends a WM_KILLFOCUS message to the CWnd that loses the input focus and a WM_SETFOCUS message to the CWnd that receives the input focus. It also activates either the CWnd or its parent. If the current CWnd is active but doesn't have the focus (that is, no window has the focus), any key pressed will produce the messages WM_SYSCHAR, WM_SYSKEYDOWN, or WM_SYSKEYUP. 4�FՊF) "��2�������Returns����F��F- (�a�2��������A pointer to the window object that previously had the input focus. It is NULL if there is no such window. The returned pointer may be temporary and should not be stored. 5ՊF�F) "��2�������See AlsoZ$��FA�F6 <�H�2�������(������::SetFocus, CWnd::GetFocus �W�FɌF1���������ɌF�F�FCWnd::SetFontEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')"):A�F�F) "�"�2�������CWnd::SetFontx:ɌF{�F> L�t�r�=���~����������void SetFont(CFont* pFont, BOOL bRedraw = TRUE);)�F��F& ��2������K{�F�F2 4�2�R�=��~Q�=�����ParameterDescription�^��F��FI b���R�=��~�=���������������pFontSpecifies the new font. bRedrawIf TRUE, redraw the CWnd; otherwise FALSE. 4�FʎF) "��2�������Remarks�l��F��FK f���2�������������������Sets the CWnd current font to CFont. If bRedraw is TRUE, CWnd will also be redrawn. See AlsoY#ʎF�F6 <�F�2�����r��������CWnd::GetFont, WM_SETFONT ��F�FA�F�W��F��F1������������F��F��FCWnd::SetMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')"):�F��F) "�"�2�������CWnd::SetMenuU#��F#�F2 4�F�r�=���~������BOOL SetMenu( CMenu* pMenu );)��FL�F& ��2������K#�F��F2 4�2�R�=��~Q�=�����ParameterDescription�]L�F)�F5 :���R�=��~�=�������pMenuIdentifies the new menu. If this parameter is NULL, the current menu is removed. 4��F]�F) "��2�������Remarks�)�Fd�FA P���2��������/��������Sets the current menu to the specified menu. SetMenu will not destroy a previous menu. An application should call the CMenu::DestroyMenu member function to accomplish this task. Returnsc4]�F��F/ .�h�2���������TRUE if the menu is changed; otherwise FALSE. 5d�F��F) "��2�������See Also�O��F��FN l���2����/����?q-��������r������CMenu::DestroyMenu, CMenu::LoadMenu, ::SetMenu, CWnd::GetMenu �Y��F#�F1q���������#�F_�F��FCWnd::SetParentEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<��F_�F) "�&�2�������CWnd::SetParent_-#�F��F2 4�Z�r�=���~������CWnd* SetParent( CWnd* pWndNewParent );)_�F��F& ��2������K��F2�F2 4�2�R����~Q�������ParameterDescriptionc4��F��F/ .�h�R����~�������pWndNewParentIdentifies the new parent window. 42�F��F) "��2�������Remarks����F��F5 8�!�2������������Changes the parent window of a child window. If the CWnd is visible, Windows performs the appropriate redrawing and repainting. Returns�Z��F�F& ���2������A pointer to the previous parent window object. The returned pointer may be temporary. 5��FC�F) "��2�������See Also\&�F��F6 <�L�2������2g�5������::SetParent, CWnd::GetParent �YC�F)�F1����������)�Fe�F2�FCWnd::SetRedrawEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<��Fe�F) "�&�2�������CWnd::SetRedrawf.)�F��F8 @�\�r�=���~��������void SetRedraw( BOOL bRedraw = TRUE );)e�F��F& ��2������K��F?�F2 4�2�R�=��~Q�=�����ParameterDescription����F�F< F��R�=��~�=���������bRedrawSpecifies the state of the redraw flag. If this parameter is TRUE, the redraw flag is set; if FALSE, the flag is cleared. 4?�F9�F) "��2�������Remarks�B�F��FF Z���2���������|�$����)�B������An application calls SetRedraw to allow changes to be redrawn, or to prevent changes from being redrawn. This member function sets or clears the redraw flag. While the redraw flag is cleared, the contents will not be updated after each change, and will not be repainted until the redraw flag is set. For example, an application that needs to add several items to a list box can clear the redraw flag, add the items, then set the redraw flag. Finally, the application can call the Invalidate or InvalidateRect member function to cause the list box to be repainted. 59�F��F) "��2�������See Also<��F2�F* $�$�2��������WM_SETREDRAW �\��F��F1�����������F��F�GCWnd::SetScrollPosEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?2�F��F) "�,�2�������CWnd::SetScrollPos�H��F��FD X���r�=���~������������int SetScrollPos( int nBar, int nPos, BOOL bRedraw = TRUE );)��F��F& ��2������K��FG2 4�2�R�=��~Q�=�����ParameterDescription��FG2�F�T��F�G/ .���R�=��~�=�����nBarSpecifies the scroll bar to be set. It can be one of the following values: CG�G2 4�"�R�Y��~Q�Y�����ValueMeaning3��GGR r���R�Y��~�Y�������������������SB_CTLSets the position of a scroll-bar control. In this case, the CWnd must be a scroll-bar control. SB_HORZSets the CWnd horizontal scroll-bar position. SB_VERTSets the CWnd vertical scroll-bar position. C��GHGJ b���R�=��~�=���������������nPosSpecifies the new position. It must be within the scrolling range. bRedrawSpecifies whether the scroll bar should be redrawn to reflect the new position. If bRedraw is TRUE, the scroll bar is redrawn; if FALSE, it is not redrawn. 4G|G) "��2�������RemarksUHG�GA P�)�2����������������Sets the current position of a scroll box to that specified by nPos and, if specified, redraws the scroll bar to reflect the new position. Setting bRedraw to FALSE is useful whenever the scroll bar will be redrawn by a subsequent call to another function. ReturnsR,|G#G& �X�2������The previous position of the scroll box. 5�GXG) "��2�������See Alsob,#G�G6 <�X�2����������������::SetScrollPos, CWnd::GetScrollPos �^XGIG1}���������IG�G�GCWnd::SetScrollRangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")A�G�G) "�0�2�������CWnd::SetScrollRange�]IG1GJ d���r�=���~��������������void SetScrollRange( int nBar, int nMinPos, int nMaxPos, BOOL bRedraw = TRUE );)�GZG& ��2������K1G�G2 4�2�R�=��~Q�=�����ParameterDescription�TZG(G/ .���R�=��~�=�����nBarSpecifies the scroll bar to be set. It can be one of the following values: C�GkG2 4�"�R�Y��~Q�Y�����ValueMeaning3�(G�	GR r���R�Y��~�Y�������������������SB_CTLSets the position of a scroll-bar control. In this case, the CWnd must be a scroll-bar control. SB_HORZSets the CWnd horizontal scroll-bar position. SB_VERTSets the CWnd vertical scroll-bar position. kkG	GR r�3�R�=��~�=�������������������nMinPosSpecifies the minimum scrolling position. nMaxPosSpecifies the maximum scrolling position. bRedrawSpecifies whether or not the scroll bar should be redrawn to reflect the change. If bRedraw is TRUE, the scroll bar is redrawn; if FALSE, it is not redrawn. 4�	G=G) "��2�������Remarks`�	G�
Ge ����2�����������rR*�����O`�������O`��������Sets minimum and maximum position values for the given scroll bar. It can also be used to hide or show standard scroll bars by setting nMinPos and nMaxPos to 0. An application should not call this function to hide a scroll bar while processing a scroll-bar notification message. If SetScrollRange immediately follows the SetScrollPos member function, the bRedraw parameter in the SetScrollPos member function should be set to FALSE to prevent the scroll bar from being drawn twice. �v=GLG9 B���2�������������The difference between the values specified by nMinPos and nMaxPos must not be greater than 32,767. See Also�H�
G�GB T���2����O`�������EJq������CWnd::SetScrollPos, ::SetScrollRange, CWnd::GetScrollRange �aLGhG1����������hG�GOCGCWnd::SetSysModalWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")D�G�G) "�6�2�������CWnd::SetSysModalWindowJhG@G, (�<�r�=���~����CWnd* SetSysModalWindow();�G@G�G)�G5@G& ��2������4@Gi@G) "��2�������Remarks�t5@GBG5 8���2������������Makes the CWnd a system-modal window. If another window is made the active window (for example, the system-modal window creates a dialog box that becomes the active window), the active window becomes the system-modal window. When the original window becomes active again, it is system modal. To end the system-modal state, destroy the system-modal window. Returns�vi@G�BG& ���2������A pointer to the window object that was previously the system-modal window. The returned pointer may be temporary. 5BG�BG) "��2�������See Alsol6�BGOCG6 <�l�2�������BP�������::SetSysModalWindow, CWnd::GetSysModalWindow �X�BG�CG1V����������CGDG8LGCWnd::SetTimerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')");OCGDG) "�$�2�������CWnd::SetTimer�s�CG�DG> L���r�=���~����������UINT SetTimer( int nIDEvent, UINT nElapse, UINT (FAR PASCAL EXPORT* lpfnTimer)(HWND, UINT, int, DWORD) );)DG�DG& ��2������K�DG8EG2 4�2�R�=��~Q�=�����ParameterDescription�B�DG�FG^ ����R�=��~�=������������	�����������nIDEventSpecifies a nonzero timer identifier. nElapseSpecifies the time-out value, in milliseconds. lpfnTimerSpecifies the address of the application-supplied TimerProc callback function that processes the WM_TIMER messages. If this parameter is NULL, the WM_TIMER messages are handled by the CWnd. 48EGGG) "��2�������Remarksz3�FG�IGG \�g�2���������������	���Installs a system timer. A time-out value is specified, and every time a time-out occurs, the system posts a WM_TIMER message to the installing application's message queue or passes the message to an application-supplied TimerProc callback function. Timers are a limited global resource; therefore, it is important that an application check the value returned by the SetTimer member function to verify that a timer is actually available. The lpfnTimer callback function need not be named TimerProc, but it must be defined as follows, and return 0. (GG�IG% ��0�������IG�JG+ $���0���	�������UINT FAR PASCAL EXPORT TimerProc(HWND hWnd,              //handle of CWnd that called SetTimerUINT nMsg,              //WM_TIMERint nIDEvent            //timer identificationDWORD dwTime            //system time);3�IG�JG(  ��������Returns�\�JGvKG1 2�������I
������The timer identifier to use in KillTimer if the function is successful; otherwise 0. 4�JG�KG(  ��������See Also�GvKG8LGG ^��������I
�������Z�?������WM_TIMER, CWnd::KillTimer, ::SetTimer, CWnd::FromHandle �\�KG�LG1�����������LGMG��GCWnd::SetWindowPosEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>8LGMG(  �,�������CWnd::SetWindowPos�l�LG�MGP p���r�=���~����������������void SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );)MG�MG& ��2������K�MG3NG2 4�2�R����~Q�������ParameterDescription���MG=�G^ ��A�R����~�����������������������������pWndInsertAfterIdentifies a CWnd in the window manager's list that will precede the positioned window. xSpecifies the x-coordinate of the new upper-left corner. ySpecifies the y-coordinate of the new upper-left corner. cxSpecifies the new window's width. cySpecifies the new window's height. nFlagsSpecifies sizing and positioning options. It3NG=�G8LG can be a combination of the following values: C3NG��G2 4�"�R����}Q�������ValueMeaningH�=�GȂG� �q�R����}�����������������������������������������������SWP_DRAWFRAMEDraws a frame (defined in the CWnd class description) around the window. SWP_HIDEWINDOWHides the CWnd. SWP_NOACTIVATEDoes not activate the CWnd. SWP_NOMOVERetains current position (ignores the x and y parameters). SWP_NOREDRAWDoes not redraw changes. SWP_NOSIZERetains current size (ignores the cx and cy parameters). SWP_NOZORDERRetains current ordering (ignores pWndInsertAfter). ](��G%�G5 :�P�R����}���������SWP_SHOWWINDOWDisplays the CWnd. 4ȂGY�G) "��2�������Remarks'�%�G��G: B���2�������������Changes the size, position, and ordering of child, pop-up, and top-level windows. Child, pop-up, and top-level windows are ordered according to their appearance on the screen; the topmost window receives the highest rank, and it is the first window in the list. This ordering is recorded in a window list. If the SWP_NOACTIVATE flag is not specified, the pWndInsertAfter parameter is ignored and CWnd is activated and placed at the top of the Z order, in front of any other windows. 
�Y�G��Gp ��5�2�������������������������������If the SWP_NOZORDER flag is not specified, Windows places CWnd in the position following the window identified by pWndInsertAfter. If pWndInsertAfter is &wndTop, Windows places CWnd at the top of the list. If pWndInsertAfter is set to &wndBottom, Windows places CWnd at the bottom of the list. If the SWP_SHOWWINDOW or the SWP_HIDEWINDOW flag is set, CWnd cannot be moved or sized. �z��G1�G- *���2���������All coordinates for child windows are relative to the upper-left corner of the parent window's client area. See AlsoX(��G��G0 0�P�2����������::DeferWindowPos, ::SetWindowPos �]1�G�G1_����������GW�G��GCWnd::SetWindowTextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@��GW�G) "�.�2�������CWnd::SetWindowTextg5�G��G2 4�j�r�=���~������void SetWindowText( const char FAR* lpString );)W�G�G& ��2������K��G2�G2 4�2�R�=��~Q�=�����ParameterDescriptions>�G��G5 :�|�R�=��~�=�������lpStringPoints to a CString or null-terminated string. 42�GيG) "��2�������RemarksH��G!�GF Z��2�����������������Sets the caption title (if one exists) to the specified text. If the CWnd is a control, the SetWindowText member function sets the text within the control instead of within the caption. This function sends a WM_SETTEXT message to CWnd. See Alsod.يG��G6 <�\�2���㵠H���������CWnd::GetWindowText, ::SetWindowText �Y!�G�G1����������GK�G(�GCWnd::ShowCaretEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<��GK�G) "�&�2�������CWnd::ShowCaretA�G��G, (�*�r�=���~����void ShowCaret();)K�G��G& ��2������4��G�G) "��2�������Remarks&���G�GG \���2������������΀������Shows the caret on the display at the caret's current position. Once shown, the caret begins flashing automatically. The ShowCaret member function shows the caret only if it has a current shape and has not been hidden two or more times in a row. If the caret is not owned by CWnd, the caret is not shown. Hiding the caret is accumulative. If the HideCaret member function has been called five times in a row, ShowCaret must be called five times to sho�G�G��Gw the caret. �~�G��G3 6���2�����������The caret is a shared resource. The CWnd should show the caret only when it has the input focus or is active. See Also\&�G(�G6 <�L�2�����΀�������CWnd::HideCaret, ::ShowCaret �_��G��G1������������G��G��GCWnd::ShowOwnedPopupsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B(�G��G) "�2�2�������CWnd::ShowOwnedPopupsj2��Gd�G8 @�d�r�=���~��������void ShowOwnedPopups( BOOL bShow = TRUE );)��G��G& ��2������Kd�G��G2 4�2�R�=��~Q�=�����ParameterDescription����G��G< F�a�R�=��~�=���������bShowSpecifies whether pop-up windows are hidden. It is TRUE if all hidden pop-up windows should be shown; it is FALSE if all visible pop-up windows should be hidden. 4��G��G) "��2�������Remarks�[��G��G3 6���2�����������Shows or hides all pop-up windows associated with the current CWnd object. See AlsoA��G��G* $�.�2��������::ShowOwnedPopups �]��GU�G15���������U�G��G��GCWnd::ShowScrollBarEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@��G��G) "�.�2�������CWnd::ShowScrollBar{=U�G�G> L�z�r�=���~����������void ShowScrollBar( UINT nBar, BOOL bShow = TRUE );)��G9�G& ��2������K�G��G2 4�2�R�=��~Q�=�����ParameterDescription>9�G��G6 :��R�=��~�=�������nBarSpecifies whether the scroll bar is a control or part of a window's nonclient area. If it is part of the nonclient area, nBar also indicates whether the scroll bar is positioned horizontally, vertically, or both. It must be one of the following values: C��G�G2 4�"�R�Y��~Q�Y�����ValueMeaning[���G`�G` ����R�Y��~�Y�������������������������SB_BOTHSpecifies the the CWnd horizontal and vertical scroll bars. SB_CTLSpecifies that the CWnd is a scroll-bar control. SB_HORZSpecifies the the CWnd horizontal scroll bar. SB_VERTSpecifies the the CWnd vertical scroll bar. ���G6�G< F�5�R�=��~�=���������bShowSpecifies whether or not Windows hides the scroll bar. If bShow is FALSE, the scroll bar is hidden. Otherwise, the scroll bar is displayed. 4`�Gj�G) "��2�������Remarks��6�GZ�GF Z�U�2�����������������Displays or hides a scroll bar, depending on the value of bShow. If bShow is TRUE, the scroll bar is displayed; if FALSE, the scroll bar is hidden. See Also?j�G��G* $�*�2��������::ShowScrollBar �ZZ�G$�G15	���������$�Ga�GqHCWnd::ShowWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=��Ga�G) "�(�2�������CWnd::ShowWindowX&$�G��G2 4�L�r�=���~������BOOL ShowWindow( int nCmdShow );)a�G��G& ��2������K��G-�G2 4�2�R�=��~Q�=�����ParameterDescription�^��G��G5 :���R�=��~�=�������nCmdShowSpecifies how the CWnd is to be shown. It must be one of the following values: C-�G�G2 4�"�R�Ã}}Q�������ValueMeaning5���GDH| ƀs�R�Ã}}���������������������������������������SW_HIDEHides CWnd and passes activation to another window. SW_MINIMIZEMinimizes CWnd and activates the top-level window in the window manager's list. SW_RESTORESame as SW_SHOWNORMAL. SW_SHOWActivates CWnd and displays it in its current size and position. SW_SHOWMAXIMIZEDActivates CWnd and displays it as a maximized window. SW_SHOWMINIMIZEDActivates �GDH��GCWnd and displays it as a minimized (iconic) window. Q��G�Hf ����R�Ã}}�����������������������������SW_SHOWMINNOACTIVEDisplays CWnd as minimized (iconic) window. The window that is currently active remains active. SW_SHOWNADisplays CWnd in its current state. The window that is currently active remains active. SW_SHOWNOACTIVATEDisplays CWnd in its most recent size and position. The window that is currently active remains active. SW_SHOWNORMALActivates and displays CWnd. If CWnd is minimized or maximized, Windows restores it to its original size and position. 4DH�H) "��2�������Remarksc�H,HS t�!�2����������������������Displays or removes the CWnd, as specified by nCmdShow. ShowWindow must be called only once per program with CWinApp::m_nCmdShow. Subsequent calls to ShowWindow must use one of the values listed above, instead of the one specified by m_nCmdShow. Returns���HHE X��2����������������Specifies the previous state of the CWnd. It is TRUE if the CWnd was previously visible; FALSE if the CWnd was previously hidden. 5,H5H) "��2�������See Also<HqH* $�$�2��������::ShowWindow �\5H�H1_����������H=HkHCWnd::UpdateWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?qH=H) "�,�2�������CWnd::UpdateWindowD�H�H, (�0�r�=���~����void UpdateWindow();)=H�H& ��2������4�H�H) "��2�������RemarksO	�H-HF Z��2�����������������Updates the client area by sending a WM_PAINT message if the update region is not empty. The UpdateWindow member function sends a WM_PAINT message directly, bypassing the application queue. If the update region is empty, WM_PAINT is not sent. See Also>�HkH* $�(�2��������::UpdateWindow �\-H�H1&����������H7	H,HCWnd::ValidateRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?kH7	H) "�,�2�������CWnd::ValidateRect[)�H�	H2 4�R�r�=���~������void ValidateRect( LPRECT lpRect );)7	H�	H& ��2������K�	H
H2 4�2�R�=��~Q�=�����ParameterDescription���	H�
H< F��R�=��~�=���������lpRectPoints to a CRect or RECT structure that contains the rectangle (in client coordinates) to be removed from the update region. 4
HH) "��2�������Remarks	��
H
HX ~�c�2����������-{��������C��������Validates the client area within the given rectangle by removing the rectangle from the update region of the given window. If lpRect is NULL, the entire window is validated. The BeginPaint member function automatically validates the entire client area. Neither the ValidateRect nor ValidateRgn member function should be called if a portion of the update region needs to be validated before WM_PAINT is next sent. �jH�
H3 6���2�����������Windows continues to send WM_PAINT messages until the current update region is validated. See Also�A
H,HB T���2����-{��������C�������CWnd::BeginPaint, ::ValidateRect, CWnd::ValidateRgn �[�
H�H1�����������H�HHBHCWnd::ValidateRgnEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>,H�H) "�*�2�������CWnd::ValidateRgnW%�HMH2 4�J�r�=���~������void ValidateRgn( CRgn* pRgn );)�HvH& ��2������KMH�H2 4�2�R�=��~Q�=�����ParameterDescription�YvHU@H/ .���R�=��~�=�����pRgnIdentifie�HU@H,Hs a region that defines the area to be removed from the update region. 4�H�@H) "��2�������Remarks�GU@HBH; D���2��������������Validates the client area within the given region by removing the region from the current update region of the given window. If pRgn is NULL, the entire window is validated. The given region must have been created previously by a region function. The region coordinates are assumed to be client coordinates. See Also=�@HHBH* $�&�2��������::ValidateRgn �_BH�BH1�����������BHCH�FHCWnd::WindowFromPointEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")BHBHCH) "�2�2�������CWnd::WindowFromPointd2�BH~CH2 4�d�r�=���~������static CWnd* WindowFromPoint( POINT point );)CH�CH& ��2������K~CH�CH2 4�2�R�=��~Q�=�����ParameterDescription�_�CH�DH; F���R�=��~�=���������pointSpecifies a CPoint or POINT data structure that defines the point to be checked. 4�CH�DH) "��2�������Remarks���DH|EH4 6��2�����������Identifies the window that contains the given point; point must specify the screen coordinates of a point on the screen. Returns���DH@FH- (�/�2��������A pointer to the window object in which the point lies. It is NULL if no window exists at the given point. The returned pointer may be temporary. 5|EHuFH) "��2�������See Alsom7@FH�FH6 <�n�2��������p]������::WindowFromPoint, CWnd::ChildWindowFromPoint �ZuFHmGH1����������mGH�GHaKHCWnd::WindowProcEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=�FH�GH) "�(�2�������CWnd::WindowProc�WmGH?HH> L���r�=���~����������Protected: virtual LONG WindowProc( UINT message, UINT wParam, LONG lParam );)�GHhHH& ��2������K?HH�HH2 4�2�R�=��~Q�=�����ParameterDescriptiong'hHHJH@ N�O�R�=��~�=�������������messageSpecifies the Windows message to be processed. wParamProvides additional information used in processing the message. The parameter value depends on the message. lParamProvides additional information used in processing the message. The parameter value depends on the message. 4�HHNJH) "��2�������Remarks��JHKH: B��2�������������Provides a Windows procedure (WindowProc) for a CWnd object. It dispatches messages through the window's message map. ReturnsR,NJHaKH& �X�2������The return value depends on the message. �VKH�KH1�����������KH!LH�MHCWnd::m_hWndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")9aKH!LH) "� �2�������CWnd::m_hWnd4�KHULH) "��2�������Remarks��!LHMH@ N�
�2���������������The handle of the Windows window attached to this CWnd. The m_hWnd data member is a public variable of type HWND. See Also�<ULH�MHH `�x�2����!�}����q$�����Z�?������CWnd::Attach, CWnd::Detach, CWnd::FromHandle �YMH)NH1X���������)NHeNH��HCWnd::wndBottomEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")<�MHeNH) "�&�2�������CWnd::wndBottom4)NH�NH) "��2�������Remarks�BeNHE�H^ ����2�����������\I���������������This is a special static CWnd that has an HWND of 1. It is only used with the pWndInsertAfter parameter of the SetWindowPos member function to indicate that the CWnd being operated on should be moved to the bottom of the window list. wndBottom is a p�NHE�H�MHublic variable of type static const CWnd. See AlsoJ�NH��H0 0�4�2����\I�������CWnd::SetWindowPos �VE�H�H1I����������HO�Hg�HCWnd::wndTopEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")9��HO�H) "� �2�������CWnd::wndTop4�H��H) "��2�������Remarks�<O�H�H^ ��y�2�����������\I���������������This is a special static CWnd that has an HWND of 0. It is only used with the pWndInsertAfter parameter of the SetWindowPos member function to indicate that the CWnd being operated on should be moved to the top of the window list. wndTop is a public variable of type static const CWnd. See AlsoJ��Hg�H0 0�4�2����\I�������CWnd::SetWindowPos �_�H��H1������������H9�H��HCWnd::EnableScrollBarEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")Bg�H9�H) "�2�2�������CWnd::EnableScrollBar=��Hv�H) "�(�2�������Windows 3.1 only�Q9�H��H8 @���r�=���~��������BOOL EnableScrollBar( int nSBFlags, UINT nArrowFlags = ESB_ENABLE_BOTH );)v�H(�H& ��2������K��Hs�H2 4�2�R�U��~Q�U�����ParameterDescription�R(�H�H/ .���R�U��~�U�����nSBFlagsSpecifies the scroll bar type. Can have one of the following values: Cs�H7�H2 4�"�R�q��~Q�q�����ValueMeaningv6�H��H@ N�m�R�q��~�q�������������SB_BOTHEnables or disables the arrows of the horizontal and vertical scroll bars associated with the window. SB_HORZEnables or disables the arrows of the horizontal scroll bar associated with the window. SB_VERTEnables or disables the arrows of the vertical scroll bar associated with the window. ��7�H~�H0 .�C�R�U��~�U�����nArrowFlagsSpecifies whether the scroll bar arrows are enabled or disabled, and which arrows are enabled or disabled. Can have one of the following values: C��H��H2 4�"�R����}Q�������ValueMeaning�d~�Hm�HH ^���R����}�������������������ESB_ENABLE_BOTHEnables both arrows of a scroll bar (default). ESB_DISABLE_LTUPDisables the left arrow of a horizontal scroll bar, or the up arrow of a vertical scroll bar. ESB_DISABLE_RTDNDisables the right arrow of a horizontal scroll bar, or the down arrow of a vertical scroll bar. ESB_DISABLE_BOTHDisables both arrows of a scroll bar. 4��H��H) "��2�������RemarksrEm�H�H- *���2���������Enables or disables one or both arrows of a scroll bar. Returns����H�H' �c�2������Nonzero if the arrows are enabled or disabled as specified. Otherwise, it is 0, which indicates that the arrows are already in the requested state or that an error occurred. 5�H �H) "��2�������See Alsox<�H��H< H�x�2����g/�O����hg��������CWnd::ShowScrollBar, CScrollBar::EnableScrollBar �W �H �H1x��������� �HZ�H��HCWnd::GetDCExEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')"):��HZ�H) "�"�2�������CWnd::GetDCEx= �H��H) "�(�2�������Windows 3.1 onlyl4Z�H�H8 @�h�r�=���~��������CDC* GetDCEx( CRgn* prgnClip, DWORD flags );)��H,�H& ��2������K�Hw�H2 4�2�R�=��~Q�=�����ParameterDescription��,�HR�H8 >�G�R�=��~�=���������prgnClipIdentifies a clipping region that may be combined with the visible region of the client window. flagsCan have one of the following preset values: Cw�H��H2 4�"�R��Q}Q�������ValueMeaningI�R�H��Hr ����R��Q}��������������������������������H��H��H���DCX_CACHEReturns a device context from the cache, rather than the OWNDC or CLASSDC window. Essentially overrides CS_OWNDC and CS_CLASSDC. DCX_CLIPCHILDRENExcludes the visible regions of all child windows below the CWnd window. DCX_CLIPSIBLINGSExcludes the visible regions of all sibling windows above the CWnd window. DCX_EXCLUDERGNExcludes the clipping region identified by prgnClip from the visible region of the returned device context. �'��Hu�Hd ��O�R��Q}��������������G���������������DCX_INTERSECTRGNIntersects the clipping region identified by prgnClip within the visible region of the returned device context. DCX_LOCKWINDOWUPDATEAllows drawing even if there is a LockWindowUpdate call in effect that would otherwise exclude this window. This value is used for drawing during tracking. DCX_PARENTCLIPUses the visible region of the parent window, ignoring the parent window's WS_CLIPCHILDREN and WS_PARENTDC style bits. This value sets the device context's origin to the upper-left corner of the CWnd window. �p��H�H/ .���R��Q}�������DCX_WINDOWReturns a device context corresponding to the window rectangle rather than the client rectangle. 4u�HH�H) "��2�������Remarks���H	�H; D�
�2��������������Retrieves the handle of a device context for the CWnd window. The device context can be used in subsequent graphics device interface (GDI) functions to draw in the client area. This function, which is an extension to the GetDC function, gives an application more control over how and whether a device context for a window is clipped. Unless the device context belongs to a window class, the ReleaseDC function must be called to release the context after drawing. Since only five common device contexts are available at any given time, failure to release a device context can prevent other applications from accessing a device context. =�H�HF�Hd ����2���������������������������In order to obtain a cached device context, an application must specify DCX_CACHE. If DCX_CACHE is not specified and the window is neither CS_OWNDC nor CS_CLASSDC, this function returns NULL. A device context with special characteristics is returned by the GetDCEx function if the CS_CLASSDC, CS_OWNDC, or CS_PARENTDC style was specified in the WNDCLASS structure when the class was registered. For more information about these characteristics, see 4	�Hz�H) "��2�������Returns�hF�H�H, (���2��������The device context for the specified window, if the function is successful. Otherwise, it is NULL. 5z�HC�H) "��2�������See Also�b�H��HZ ����2����-{�����(Uc�����;�����M$��������CWnd::BeginPaint, CWnd::GetDC, CWnd::GetWindowDC, CWnd::ReleaseDC, ::GetDCEx �bC�H��H1������������H��H�ICWnd::GetWindowPlacementEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")E��H��H) "�8�2�������CWnd::GetWindowPlacement=��H�H) "�(�2�������Windows 3.1 onlyvD��H��H2 4���r�=���~������BOOL GetWindowPlacement( WINDOWPLACEMENT FAR* lpwndpl ) const;)�H��H& ��2������K��H��H2 4�2�R�=��~Q�=�����ParameterDescription�m��H��H5 :���R�=��~�=�������lpwndplPoints to the WINDOWPLACEMENT structure that receives the show state and position information. 4��H��H) "��2�������Remarks�~��H�I_ ����2��������������������������Retrieves the show state and the normal (restored), minimized, and maximized positions of a window. The flags member of the WINDOWPLACEMENT structure retrieved by this function is always 0. If CWnd��H�I��H is maximized, the showCmd member of WINDOWPLACEMENT is SW_SHOWMAXIMIZED if the window is minimized, it is SW_SHOWMINIMIZED it is SW_SHOWNORMAL otherwise. Returns^8��HI& �p�2������Nonzero if the function is successful. Otherwise, 0. 5�IPI) "��2�������See Alsol6I�I6 <�l�2����Y}F��������CWnd::SetWindowPlacement, GetWindowPlacement �`PIMI1����������MI�I8	ICWnd::LockWindowUpdateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")C�I�I) "�4�2�������CWnd::LockWindowUpdate=MI�I) "�(�2�������Windows 3.1 onlyH�II, (�8�r�=���~����BOOL LockWindowUpdate();)�I>I& ��2������4IrI) "��2�������Remarks�d>IIG \���2������������������Disables or reenables drawing in the given window. A locked window cannot be moved. Only one window can be locked at a time. If an application with a locked window (or any locked child windows) calls the GetDC, GetDCEx, or BeginPaint Windows functions, the called function returns a device context whose visible region is empty. This will occur until the application unlocks the window by calling the LockWindowUpdate member function. While window updates are locked, the system keeps track of the bounding rectangle of any drawing operations to device contexts associated with a locked window. When drawing is reenabled, this bounding rectangle is invalidated in the locked window and its child windows to force an eventual WM_PAINT message to update the screen. If no drawing has occurred while the window updates were locked, no area is invalidated. ��rI�I: B��2�������������The LockWindowUpdate member function does not make the given window invisible and does not clear the WS_VISIBLE style bit. Returns��I�I- (�%�2��������Nonzero if the function is successful. It is 0 if a failure occurs or if the LockWindowUpdate function has been used to lock another window. 5�I�I) "��2�������See Alsoa+�I8	I6 <�V�2�����r��������CWnd::GetDCEx, ::LockWindowUpdate �_�I�	I1I����������	I

I"ICWnd::MapWindowPointsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")B8	I

I) "�2�2�������CWnd::MapWindowPoints=�	IG
I) "�(�2�������Windows 3.1 only��

I-IR r�)�r�=���~�����������������void MapWindowPoints( CWnd* pwndTo, LPRECT lpRect ) const;void MapWindowPoints( CWnd* pwndTo, LPPOINT lpPoint, UINT nCount ) const;)G
IVI& ��2������K-I�I2 4�2�R�=��~Q�=�����ParameterDescription�VI�
If ��K�R�=��~�=���������������������������pwndToIdentifies the window to which points are converted. If this parameter is NULL or HWND_DESKTOP, the points are converted to screen coordinates. lpRectSpecifies the rectangle whose points are to be converted. lpPointA pointer to an array of POINT structures that contain the set of points to be converted. nCountSpecifies the number of POINT structures in the array pointed to by lpPoint. 4�I�
I) "��2�������Remarks���
I�I4 6��2�����������Converts (maps) a set of points from the coordinate space of the CWnd to the coordinate space of another window. See Also�K�
I"IB T���2�����Vu����t��F��������CWnd::ClientToScreen, CWnd::ScreenToClient, ::MapWindowPoints �c�I�I1����������I@I�BICWnd::OnPaletteIsChangingEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")F"I@I) "�:�2�������CWnd::OnPaletteIsChanging�I@I"I=�II@I) "�(�2�������Windows 3.1 onlyf:@I�@I, (�t�r�=���~����afx_msg void OnPaletteIsChanging( CWnd* pRealizeWnd );)I@I�@I& ��2������K�@I#AI2 4�2�R�M��~Q�M�����ParameterDescription�S�@I�AI/ .���R�M��~�M�����pRealizeWndSpecifies the window that is about to realize its logical palette. 4#AI�AI) "��2�������Remarks�`�AIfBI- *���2���������Informs applications that an application is going to realize its logical palette. See Also|F�AI�BI6 <���2������������WM_PALETTECHANGED, WM_QUERYNEWPALETTE, ::OnPaletteIsChanging �bfBIuCI1-���������uCI�CI�HICWnd::OnWindowPosChangedEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")E�BI�CI) "�8�2�������CWnd::OnWindowPosChanged=uCI�CI) "�(�2�������Windows 3.1 onlysA�CIjDI2 4���r�=���~������afx_msg void OnWindowPosChanged( WINDOWPOS FAR* lpwndpos );)�CI�DI& ��2������KjDI�DI2 4�2�R�=��~Q�=�����ParameterDescription�x�DI�EI5 :���R�=��~�=�������lpwndposPoints to a WINDOWPOS data structure that contains information about the window's new size and position. 4�DI�EI) "��2�������Remarks`��EIHIj ����2��������L�����������L�������L������Called when the size, position, or z-order has changed as a result of a call to SetWindowPos or another window-management function. This function calls CWnd::Default, which sends the WM_SIZE and WM_MOVE messages to the window. These messages are not sent if an application handles the OnWindowPosChanged call without calling CWnd::Default. It is more efficient to perform any move or size change processing during the call to OnWindowPosChanged without calling CWnd::Default. 5�EITHI) "��2�������See Alsob,HI�HI6 <�X�2������L�������WM_WINDOWPOSCHANGED, CWnd::Default �cTHIJII1n���������JII�II�ICWnd::OnWindowPosChangingEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")F�HI�II) "�:�2�������CWnd::OnWindowPosChanging=JII�II) "�(�2�������Windows 3.1 onlytB�IIAJI2 4���r�=���~������afx_msg void OnWindowPosChanging( WINDOWPOS FAR* lpwndpos );)�IIjJI& ��2������KAJI�JI2 4�2�R�=��~Q�=�����ParameterDescription�xjJIbKI5 :���R�=��~�=�������lpwndposPoints to a WINDOWPOS data structure that contains information about the window's new size and position. 4�JI�KI) "��2�������Remarksu�bKIOI� Ԁ��2�������������L���������L�������������L������Called when the size, position, or z-order is about to change as a result of a call to SetWindowPos or another window-management function. An application can prevent changes to the window by setting or clearing the appropriate bits in the flags member of the WINDOWPOS structure. This function calls CWnd::Default. For a window with the WS_OVERLAPPED or WS_THICKFRAME style, the CWnd::Default function handles a WM_WINDOWPOSCHANGING message by sending a WM_GETMINMAXINFO message to the window. This is done to validate the new size and position of the window and to enforce the CS_BYTEALIGNCLIENT and CS_BYTEALIGN client styles. An application can override this functionality by not calling the CWnd::Default function. 5�KI@OI) "��2�������See Also�KOI�IB T���2����Ke~����L���������CWnd::OnWindowPosChanged, CWnd::Default, WM_WINDOWPOSCHANGING @OI�I�HI�]@OI��I1h�����������IڀI�ICWnd::PostNcDestroyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")@�IڀI) "�.�2�������CWnd::PostNcDestroy=��I�I) "�(�2�������Windows 3.1 onlyM!ڀId�I, (�B�r�=���~����virtual void PostNcDestroy();)�I��I& ��2������4d�I��I) "��2�������Remarks���IȂI@ N���2������j�����������Called by the default OnNcDestroy function after the window has been destroyed. Derived classes can use this function for custom cleanup such as the deletion of the this pointer. See AlsoI��I�I0 0�2�2�����j�������CWnd::OnNcDestroy �\ȂI��I1X�����������I݃IV�ICWnd::RedrawWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")?�I݃I) "�,�2�������CWnd::RedrawWindow=��I�I) "�(�2�������Windows 3.1 only��݃I�I? L��r�=���~����������BOOL RedrawWindow( const RECT FAR* lpRectUpdate = NULL, CRgn* prgnUpdate = NULL, UINT flags = RDW_INVALIDATE | RDW_UPDATENOW );)�I�I& ��2������K�IV�I2 4�2�R�[��~Q�[�����ParameterDescription���I6�I^ ���R�[��~�[�����������������������lpRectUpdatePoints to a RECT structure containing the coordinates of the update rectangle. This parameter is ignored if prgnUpdate contains a valid region handle. prgnUpdateIdentifies the update region. If both prgnUpdate and lpRectUpdate are NULL, the entire client area is added to the update region. flagsThe following flags are used to invalidate the window: CV�Iy�I2 4�"�R�׃�}Q�������ValueMeaning�"6�I�Ij ��E�R�׃�}�����������������������������RDW_ERASECauses the window to receive a WM_ERASEBKGND message when the window is repainted. The RDW_INVALIDATE flag must also be specified; otherwise, RDW_ERASE has no effect. RDW_FRAMECauses any part of the nonclient area of the window that intersects the update region to receive a WM_NCPAINT message. The RDW_INVALIDATE flag must also be specified; otherwise, RDW_FRAME has no effect. RDW_INTERNALPAINTCauses a WM_PAINT message to be posted to the window regardless of whether the window contains an invalid region. ��y�IފIH ^�#�R�׃�}���������������RDW_INVALIDATEInvalidate lpRectUpdate or hrgnUpdate (only one may be not NULL). If both are NULL, the entire window is invalidated. e9�IC�I, (�r�R�[��~�[����The following flags are used to validate the window: CފI��I2 4�"�R��A}Q������ValueMeaning6�C�I��Id ����R��A}��������������������������RDW_NOERASESuppresses any pending WM_ERASEBKGND messages. RDW_NOFRAMESuppresses any pending WM_NCPAINT messages. This flag must be used with RDW_VALIDATE and is typically used with RDW_NOCHILDREN. This option should be used with care, as it could prevent parts of a window from painting properly. RDW_NOINTERNALPAINTSuppresses any pending internal WM_PAINT messages. This flag does not affect WM_PAINT messages resulting from invalid areas. ���IΎIN j���R��A}����������������RDW_VALIDATEValidates lpRectUpdate or prgnUpdate (only one may be not NULL). If both are NULL, the entire window is validated. This flag does not affect internal WM_PAINT messages. ����I��I3 4�1�R�[��~�[������The following flags control when repainting occurs. Painting is not performed by the RedrawWindow function unless one of these bits is specified. CΎI܏I2 4�"�R�5�)~Q�5�����ValueMeaningE���I-�It ����R�5�)~܏I-�I�I�5�����������������������������RDW_ERASENOWCauses the affected windows (as specified by the RDW_ALLCHILDREN and RDW_NOCHILDREN flags) to receive WM_NCPAINT and WM_ERASEBKGND messages, if necessary, before the function returns. WM_PAINT messages are deferred. RDW_UPDATENOWCauses the affected windows (as specified by the RDW_ALLCHILDREN and RDW_NOCHILDREN flags) to receive WM_NCPAINT, WM_ERASEBKGND, and WM_PAINT messages, if necessary, before the function returns. 
�܏I:�IQ p�y�R�[��~�[����������������By default, the windows affected by the RedrawWindow function depend on whether the specified window has the WS_CLIPCHILDREN style. The child windows of WS_CLIPCHILDREN windows are not affected. However, those windows that are not WS_CLIPCHILDREN windows are recursively validated or invalidated until a WS_CLIPCHILDREN window is encountered. The following flags control which windows are affected by the RedrawWindow function: C-�I}�I2 4�"�R�w��}Q�w�����ValueMeaning��:�IW�I8 >�E�R�w��}�w���������RDW_ALLCHILDRENIncludes child windows, if any, in the repainting operation. RDW_NOCHILDRENExcludes child windows, if any, from the repainting operation. 4}�I��I) "��2�������Remarks�mW�IV�I^ ����2�����������C�������������y��������Updates the specified rectangle or region in the given window's client area. When the RedrawWindow member function is used to invalidate part of the desktop window, that window does not receive a WM_PAINT message. To repaint the desktop, an application should use the CWnd::ValidateRgn, CWnd::InvalidateRgn, CWnd::UpdateWindow, ::RedrawWindow �^��I��I1�����������I&�IVJCWnd::ScrollWindowExEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")AV�I&�I) "�0�2�������CWnd::ScrollWindowEx=��Ic�I) "�(�2�������Windows 3.1 only��&�Ia�IW |�O�r�=���~������������������int ScrollWindowEx( int dx, int dy, const RECT FAR* lpRectScroll, const RECT FAR* lpRectClip, CRgn* prgnUpdate, RECT FAR* lpUpdateRect, UINT flags );)c�I��I& ��2������Ka�I��I2 4�2�R�[��~Q�[�����ParameterDescription�9��Iz�Il ��s�R�[��~�[�����������������������������dxSpecifies the amount, in device units, of horizontal scrolling. This parameter must have a negative value to scroll to the left. dySpecifies the amount, in device units, of vertical scrolling. This parameter must have a negative value to scroll up. lpRectScrollPoints to a RECT structure that specifies the portion of the client area to be scrolled. If this parameter is NULL, the entire client area is scrolled. lpRectClipPoints to a RECT structure that specifies the clipping rectangle to scroll. This structure takes precedence over the rectangle pointed to by lpRectScroll. Only bits inside this rectangle are scrolled. Bits outside this rectangle are not affected even if they are in the lpRectScroll rectangle. If this parameter is NULL, no clipping is performed on the scroll rectangle. �G��I�IR r���R�[��~�[�������������������prgnUpdateIdentifies the region that is modified to hold the region invalidated by scrolling. This parameter may be NULL. lpUpdateRectPoints to a RECT structure that will receive the boundaries of the rectangle invalidated by scrolling. This parameter may be NULL. flagsCan have one of the following values: Cz�IV�I2 4�"�R����}Q�������ValueMeaning�_�I1Jp ����R����}�������������������������������SW_ERASEWhen specified with SW_INVALIDATE, erases theV�I1JV�I newly invalidated region by sending a WM_ERASEBKGND message to the window. SW_INVALIDATEInvalidates the region identified by prgnUpdate after scrolling. SW_SCROLLCHILDRENScrolls all child windows that intersect the rectangle pointed to by lpRectScroll by the number of pixels specified in dx and dy. Windows sends a WM_MOVE message to all child windows that intersect lpRectScroll, even if they do not move. The caret is repositioned when a child window is scrolled and the cursor rectangle intersects the scroll rectangle. 4V�IeJ) "��2�������Remarks�K1JJd ����2���������������������������Scrolls the contents of a window's client area. This function is similar to the ScrollWindow function, with some additional features. If SW_INVALIDATE and SW_ERASE are not specified, the ScrollWindowEx member function does not invalidate the area that is scrolled away from. If either of these flags is set, ScrollWindowEx invalidates this area. The area is not updated until the application calls the UpdateWindow function, calls the RedrawWindow function (specifying RDW_UPDATENOW or RDW_ERASENOW), or retrieves the WM_PAINT message from the application queue. Q�eJeJR r���2���������������������If the window has the WS_CLIPCHILDREN style, the returned areas specified by prgnUpdate and lpUpdateRect represent the total area of the scrolled window that must be updated, including any areas in child windows that need updating. If the SW_SCROLLCHILDREN flag is specified, Windows will not properly update the screen if part of a child window is scrolled. The part of the scrolled child window that lies outside the source rectangle will not be erased and will not be redrawn properly in its new destination. Use the DeferWindowPos function to move child windows that do not lie completely within the lpRectScroll rectangle. The cursor is repositioned if the SW_SCROLLCHILDREN flag is set and the caret rectangle intersects the scroll rectangle. �OJ
J^ ����2�������������������������All input and output coordinates (for lpRectScroll, lpRectClip, lpUpdateRect, and prgnUpdate) are assumed to be in client coordinates, regardless of whether the window has the CS_OWNDC or CS_CLASSDC class style. Use the LPtoDP and DPtoLP functions to convert to and from logical coordinates, if necessary. ReturnsDeJVJ? L��2��������������The return value is SIMPLEREGION (rectangular invalidated region), COMPLEXREGION (nonrectangular invalidated region; overlapping rectangles), or NULLREGION (no invalidated region), if the function is successful. Otherwise, the return value is ERROR. 5
J�J) "��2�������See Also�qVJVJZ ����2�����3Հ���n@M����%�������y���������CWnd::RedrawWindow, CDC::ScrollDC, CWnd::ScrollWindow, CWnd::UpdateWindow, ::ScrollWindowEx �b�J�J1g����������J.
JAAJCWnd::SetWindowPlacementEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")EVJ.
J) "�8�2�������CWnd::SetWindowPlacement=�Jk
J) "�(�2�������Windows 3.1 onlyvD.
J�
J2 4���r�=���~������BOOL SetWindowPlacement( const WINDOWPLACEMENT FAR* lpwndpl );)k
J
J& ��2������K�
JUJ2 4�2�R�=��~Q�=�����ParameterDescription�
JfJB R���R�=��~�=�����������lpwndplPoints to a WINDOWPLACEMENT structure that specifies the new show state and positions. For a full description of this structure, see the Microsoft Windows Programmer's Reference, Volume 3. 4UJ�J) "��2�������Remarks�mfJ@@J- *���2���������Sets the show state and the normal (restored), minimized�J@@JVJ, and maximized positions for a window. Returns^8�J�@J& �p�2������Nonzero if the function is successful; otherwise, 0. 5@@J�@J) "��2�������See Alson8�@JAAJ6 <�p�2����U�վ��������CWnd::GetWindowPlacement, ::SetWindowPlacement �^�@J�AJ1k����������AJBJKGJCWnd::SubclassWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")AAAJBJ) "�0�2�������CWnd::SubclassWindow=�AJNBJ) "�(�2�������Windows 3.1 onlyY'BJ�BJ2 4�N�r�=���~������BOOL SubclassWindow( HWND hwnd );)NBJ�BJ& ��2������K�BJCJ2 4�2�R�=��~Q�=�����ParameterDescriptionP!�BJkCJ/ .�B�R�=��~�=�����hwndA handle to the window. 4CJ�CJ) "��2�������RemarksikCJFJd ���2������������������>�����������Attaches a window to a CWnd object and replaces the window's WndProc and AfxWndProc. It stores the old WndProc in the location returned by GetSuperWndProc, which is used for default message processing (see CWnd::DefWindowProc). You must override GetSuperWndProcAddr for every unique window class to provide a place to store the old WndProc. The operation of replacing a WndProc with a new one, saving the old one and calling it a "super class," is known as "dynamically subclassing" a window. 4�CJ<FJ) "��2�������Returnsk<FJ�FJ/ .�x�2���������TRUE if the function is successful; otherwise, FALSE. 5<FJ�FJ) "��2�������See Alsoo3�FJKGJ< H�f�2�����>�����!�}������CWnd::GetSuperWndProcAddr, CWnd::Attach �[�FJ�GJ1h����������GJHJLLJCWnd::OnDropFilesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")>KGJHJ) "�*�2�������CWnd::OnDropFiles=�GJRHJ) "�(�2�������Windows 3.1 onlye3HJ�HJ2 4�f�r�=���~������afx_msg void OnDropFiles( HANDLE hDropInfo );)RHJ�HJ& ��2������K�HJ+IJ2 4�2�R�=��~Q�=�����ParameterDescription(��HJSJJB R���R�=��~�=�����������hdropA pointer to an internal data structure that describes the dropped files. This handle is used by the DragFinish, DragQueryFile, and DragQueryPoint Windows functions to retrieve information about the dropped files. 4+IJ�JJ) "��2�������Remarks;SJJ�KJ/ ,��2����������Called when the user releases the left mouse button over a window that has registered itself as the recipient of dropped files. Typically, a derived class will be designed to support dropped files and it will register itself during window construction. See Also�N�JJLLJ< H���2��������������::DragAcceptFiles, ::DragFinish, ::DragQueryFile, ::DragQueryPoint �f�KJ�LJ11����������LJ,MJ8�JCWnd::GetOpenClipboardWindowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")I LLJ,MJ) "�@�2�������CWnd::GetOpenClipboardWindow=�LJiMJ) "�(�2�������Windows 3.1 onlyN",MJ�MJ, (�D�r�=���~����HWND GetOpenClipboardWindow();)iMJ�MJ& ��2������4�MJNJ) "��2�������Remarks�W�MJ�NJ- *���2���������Retrieves the handle of the window that currently has the Clipboard open. Returns�sNJ7OJ, (���2��������The handle of the window that currently has the Clipboard open if the function is successful; otherwise NULL. 5�NJlOJ) "��2�������See Also�r7OJ8�JN l���2������b����r;Հ���6����������CWnd::GetClipboardOwner, CWnd::GetClipboardViewer, CWnd::OpelOJ8�JLLJnClipboard, ::GetOpenClipboardWindow �ZlOJÀJ1���������ÀJ�JςJCWnd::GetExStyleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CWnd')")=8�J�J) "�(�2�������CWnd::GetExStyle=ÀJ=�J) "�(�2�������Windows 3.1 onlyI�J��J, (�:�r�=���~����DWORD GetExStyle() const;)=�J��J& ��2������3��J�J(  ��������ReturnsE ��J'�J% �@������The window's extended style. 4�J[�J(  ��������See Alsot9'�JςJ; F�r�������+����������CWnd::GetStyle, ::GetExStyle, ::GetWindowLong �[[�J[�J1O���������[�J��J��JCDC::GetBoundsRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")>ςJ��J(  �,�������CDC::GetBoundsRect=[�JփJ) "�(�2�������Windows 3.1 onlyv>��JL�J8 @�|�r�=���~��������UINT GetBoundsRect( LPRECT lpRectBounds, UINT flags );)փJu�J& ��2������KL�J��J2 4�2�R�a��~Q�a�����ParameterDescriptionLu�J�J8 >�)�R�a��~�a���������lpRectBoundsPoints to a buffer that will receive the current bounding rectangle. The rectangle is returned in logical coordinates. flagsSpecifies whether the bounding rectangle is to be cleared after it is returned. This parameter can be one of the following values: C��JO�J2 4�"�R��E~Q������ValueMeaning���J-�J8 >�M�R��E~����������DCB_RESETForces the bounding rectangle to be cleared after it is returned. DCB_WINDOWMGRQueries the Windows bounding rectangle instead of the application's. 4O�Ja�J) "��2�������Remarks�b-�J��J- *���2���������Returns the current accumulated bounding rectangle for the specified device context. Returns��a�J��J' ��2������Specifies the current state of the bounding rectangle if the function is successful. It can be a combination of the following values: C��J�J2 4�"�R��~Q������ValueMeaning>���J!�JP n���R��~����������������������DCB_ACCUMULATEBounding rectangle accumulation is occuring. DCB_RESETBounding rectangle is empty. DCB_SETBounding rectangle is not empty. DCB_ENABLEBounding accumulation is on. DCB_DISABLEBounding accumulation is off. 4�JU�J(  ��������See Alsob-!�J��J5 :�Z�����`��������CDC::SetBoundsRect, ::GetBoundsRect �^U�JF�J1����������F�J��J��JCDC::GetCharABCWidthsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")A��J��J(  �2�������CDC::GetCharABCWidths=F�JċJ) "�(�2�������Windows 3.1 only�N��JP�J> L���r�=���~����������BOOL GetCharABCWidths( UINT nFirst, UINT nLast, LPABC lpabc ) const;)ċJy�J& ��2������KP�JČJ2 4�2�R�=��~Q�=�����ParameterDescriptionYy�J�JX ~��R�=��~�=���������������������nFirstSpecifies the first character in the range of characters from the current font for which character widths are returned. nLastSpecifies the last character in the range of characters from the current font for which character widths are returned. lpabcPoints to an array of ABC structures that receive the character widths when the function returns. This array must contain at least as many ABC structures as there are characters in the range specified by the nFirst and nLast parameters. 4ČJQ�J) "��2�������RemarksW�J��J( ���2�������Retrieves the widths of consecutive characters in a specified range from the current TrueType font. The widths are returned in logicalQ�J��J��J units. This function succeeds only with TrueType fonts. The TrueType rasterizer provides "ABC" character spacing after a specific point size has been selected. "A" spacing is the distance that is added to the current position before placing the glyph. "B" spacing is the width of the black part of the glyph. "C" spacing is added to the current position to account for the white space to the right of the glyph. The total advanced width is given by A + B + C. Q�Q�J-�JR r���2���������������������When the GetCharABCWidths member function retrieves negative "A" or "C" widths for a character, that character includes underhangs or overhangs. To convert the ABC widths to font design units, an application should create a font whose height (as specified in the lfHeight member of the LOGFONT structure) is equal to the value stored in the ntmSizeEM member of the NEWTEXTMETRIC structure. (The value of the ntmSizeEM member can be retrieved by calling the EnumFontFamilies Windows function.) 6��Jc�J5 8��2������������The ABC widths of the default character are used for characters that are outside the range of the currently selected font. To retrieve the widths of characters in non-TrueType fonts, applications should use the GetCharWidth member function. Returns^8-�J��J& �p�2������Nonzero if the function is successful; otherwise, 0. 5c�J��J) "��2�������See Also�V��J��JB T���2��������������������::EnumFontFamilies, ::GetCharWidth, CDC::GetCharWidth, ::GetCharABCWidth �Y��J�J1#
����������JU�J�KCDC::GetFontDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")=��JU�J) "�(�2�������CDC::GetFontData=�J��J) "�(�2�������Windows 3.1 only�bU�J8�JD X���r�=���~������������DWORD GetFontData( DWORD dwTable, DWORD dwOffset, LPVOID lpData, DWORD cbData ) const;)��Ja�J& ��2������K8�J��J2 4�2�R�=��~Q�=�����ParameterDescription�sa�Jc�JD V���R�=��~�=�������������dwTableSpecifies the name of the metric table to be returned. This parameter can be one of the metric tables documented in the TrueType Font Files specification, published by Microsoft Corporation. If this parameter is 0, the information is retrieved starting at the beginning of the font file. dwOffsetSpecifies the offset from the beginning of the table at which to begin retrieving information. If this parameter is 0, the information is retrieved starting at the beginning of the table specified by the dwTable parameter. If this value is greater than or equal to the size of the table, GetFontData returns 0. ����J6�JP n��R�=��~�=�����������������lpDataPoints to a buffer that will receive the font information. If this value is NULL, the function returns the size of the buffer required for the font data specified in the dwTable parameter. cbDataSpecifies the length, in bytes, of the information to be retrieved. If this parameter is 0, GetFontData returns the size of the data specified in the dwTable parameter. 4c�Jj�J) "��2�������Remarks%�6�J��J@ N���2���������������Retrieves font-metric information from a scalable font file. The information to retrieve is identified by specifying an offset into the font file and the length of the information to return. An application can sometimes use the GetFontData member function to save a TrueType font with a document. To do this, the application determines whether the font can be embedded and then retrieves the entire font file, specifying 0 for the dwTable, dwOffset, and cbData parameters. 	�j�J�KG \���2������������������Applications can determine whether a font��J�K��J can be embedded by checking the otmfsType member of the OUTLINETEXTMETRIC structure. If bit 1 of otmfsType is set, embedding is not permitted for the font. If bit 1 is clear, the font can be embedded. If bit 2 is set, the embedding is read-only. If an application attempts to use this function to retrieve information for a non-TrueType font,the GetFontData member function returns -1. Returns�}��JMK, (���2��������Specifies the number of bytes returned in the buffer pointed to by lpData if the function is successful; otherwise, -1. 5�K�K) "��2�������See Alsoi3MK�K6 <�f�2���㨫`c��������CDC::GetOutlineTextMetrics, ::GetFontData �]�KyK1����������yK�K�CKCDC::GetGlyphOutlineEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")A�K�K) "�0�2�������CDC::GetGlyphOutline=yK�K) "�(�2�������Windows 3.1 only���K�KQ p�9�r�=���~����������������DWORD GetGlyphOutline( UINT nChar, UINT nFormat, GLYPHMETRICS FAR* lpgm, DWORD cbBuffer, void FAR* lpBuffer, const MAT2 FAR* lpmat2 ) const;)�K
K& ��2������K�KXK2 4�2�R�=��~Q�=�����ParameterDescription�
KXK8 >���R�=��~�=���������nCharSpecifies the character for which information is to be returned. nFormatSpecifies the format in which the function is to return information. It can be one of the following values, or 0: CXK�K2 4�"�R�ɂy~
�������ValueMeaning�kXKJKD V���R�ɂy~���������������GGO_BITMAPReturns the glyph bitmap. When the function returns, the buffer pointed to by lpBuffer contains a 1-bit-per-pixel bitmap whose rows start on doubleword boundaries. GGO_NATIVEReturns the curve data points in the rasterizer's native format, using device units. When this value is specified, any transformation specified in lpmat2 is ignored. [��K�
Ka ����R�=��~�=������������������������When the value of nFormat is 0, the function fills in a GLYPHMETRICS structure but does not return glyph-outline data. lpgmPoints to a GLYPHMETRICS structure that describes the placement of the glyph in the character cell. cbBufferSpecifies the size of the buffer into which the function copies information about the outline character. If this value is 0 and the nFormat parameter is either the GGO_BITMAP or GGO_NATIVE values, the function returns the required size of the buffer. �<JKa
K� ΀y�R�=��~�=���������������������������������lpBufferPoints to a buffer into which the function copies information about the outline character. If nFormat specifies the GGO_NATIVE value, the information is copied in the form of TTPOLYGONHEADER and TTPOLYCURVE structures. If this value is NULL and nFormat is either the GGO_BITMAP or GGO_NATIVE value, the function returns the required size of the buffer. lpmat2Points to a MAT2 structure that contains a transformation matrix for the character. This parameter cannot be NULL, even when the GGO_NATIVE value is specified for nFormat. 4�
K�
K) "��2�������Remarks�a
K�AKS t���2����������������������Retrieves the outline curve or bitmap for an outline character in the current font. An application can rotate characters retrieved in bitmap format by specifying a 2-by-2 transformation matrix in the structure pointed to by lpmat2. A glyph outline is returned as a series of contours. Each contour is defined by a TTPOLYGONHEADER structure followed by as many TTPOLYCURVE structures as are required to describe it. All points are returned as POINTFX structures and represent absolute positions, not relative moves. The starti�
K�AK�Kng point given by the pfxStart member of the TTPOLYGONHEADER structure is the point at which the outline for a contour begins. The TTPOLYCURVE structures that follow can be either polyline records or spline records. Polyline records are a series of points; lines drawn between the points describe the outline of the character. Spline records represent the quadratic curves used by TrueType (that is, quadratic b-splines). 4�
K�AK) "��2�������Returns"��AKCK9 @���2������������The return value is the size, in bytes, of the buffer required for the retrieved information if cbBuffer is 0 or lpBuffer is NULL. Otherwise, it is a positive value if the function is successful, or -1 if there is an error. 5�AKECK) "��2�������See Alsom7CK�CK6 <�n�2���㨫`c��������CDC::GetOutlineTextMetrics, ::GetGlyphOutline �]ECK@DK1���������@DK�DKPJKCDC::GetKerningPairsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")A�CK�DK) "�0�2�������CDC::GetKerningPairs=@DK�DK) "�(�2�������Windows 3.1 only�L�DKBEK8 @���r�=���~��������int GetKerningPairs( int nPairs, KERNINGPAIR FAR* lpkrnpair ) const;)�DKkEK& ��2������KBEK�EK2 4�2�R�=��~Q�=�����ParameterDescription#�kEK�GK\ ����R�=��~�=���������������������nPairsSpecifies the number of KERNINGPAIR structures pointed to by lpkrnpair. The function will not copy more kerning pairs than specified by nPairs. lpkrnpairPoints to an array of KERNINGPAIR structures that receive the kerning pairs when the function returns. This array must contain at least as many structures as specified by nPairs. If this parameter is NULL, the function returns the total number of kerning pairs for the font. 4�EK
HK) "��2�������Remarks�|�GK�HK- *���2���������Retrieves the character kerning pairs for the font that is currently selected in the specified device context. Returns�
HK�IK' ���2������The return value specifies the number of kerning pairs retrieved or the total number of kerning pairs in the font, if the function is successful. Zero is returned if the function fails or there are no kerning pairs for the font. 5�HK�IK) "��2�������See AlsoV&�IKPJK0 0�L�2����������::GetKerningPairs, KERNINGPAIR �c�IK�JK1}����������JK+KK�KCDC::GetOutlineTextMetricsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")GPJK+KK) "�<�2�������CDC::GetOutlineTextMetrics=�JKhKK) "�(�2�������Windows 3.1 only�V+KK�KK8 @���r�=���~��������UINT GetOutlineTextMetrics( UINT cbData, OUTLINETEXTMETRIC FAR* lpotm ) const;)hKKLK& ��2������K�KKjLK2 4�2�R�=��~Q�=�����ParameterDescriptionJLK�MKD V�
�R�=��~�=�������������cbDataSpecifies the size, in bytes, of the buffer to which information is returned. lpotmPoints to an OUTLINETEXTMETRIC structure. If this parameter is NULL, the function returns the size of the buffer required for the retrieved metric information. 4jLK�MK) "��2�������Remarks�y�MK��KL f���2�������������������Retrieves metric information for TrueType fonts. The OUTLINETEXTMETRIC structure contains most of the font metric information provided with the TrueType format, including a TEXTMETRIC structure. The last four members of the OUTLINETEXTMETRIC structure are pointers to strings. Applications should allocate space for these strings in addition to the space required for the other members. Because there is no system-imposed limit to the size of the strin�MK��KPJKgs, the simplest method for allocating memory is to retrieve the required size by specifying NULL for lpotm in the first call to the GetOutlineTextMetrics function. 4�MK�K) "��2�������Returns^8��KK�K& �p�2������Nonzero if the function is successful; otherwise, 0. 5�K��K) "��2�������See Also�JK�K�K< H���2���������U�������::GetTextMetrics, ::GetOutlineTextMetrics, CDC::GetTextMetrics �X��K��K1|�����������K˂K�KCDC::QueryAbortEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")<�K˂K) "�&�2�������CDC::QueryAbort=��K�K) "�(�2�������Windows 3.1 onlyH˂KP�K, (�8�r�=���~����BOOL QueryAbort() const;)�Ky�K& ��2������4P�K��K) "��2�������Remarks��y�K��K4 6�Q�2�����������Calls the abort function installed by the SetAbortProc member function for a printing application and queries whether the printing should be terminated. Returns����K��K3 4���2����������The return value is TRUE if printing should continue or if there is no abort procedure. It is FALSE if the print job should be terminated. The return value is supplied by the abort function. 5��K��K) "��2�������See Also_)��K�K6 <�R�2�������%AҀ�����CDC::SetAbortProc, ::QueryAbort �[��K��K1������������K�Kr�KCDC::SetBoundsRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDC')")?�K�K) "�,�2�������CDC::SetBoundsRect=��K�K) "�(�2�������Windows 3.1 onlyG�K��K8 @���r�=���~��������UINT SetBoundsRect( const RECT FAR* lpRectBounds, UINT flags );)�KƇK& ��2������K��K�K2 4�2�R�a��~Q�a�����ParameterDescription�FƇK��KD V���R�a��~�a�������������lpRectBoundsPoints to a RECT structure that is used to set the bounding rectangle. Rectangle dimensions are given in logical coordinates. This parameter can be NULL. flagsSpecifies how the new rectangle will be combined with the accumulated rectangle. This parameter may be a combination of the following values: C�KމK2 4�"�R�O�~Q�O�����ValueMeaningY��K7�KF Z�'�R�O�~�O���������������DCB_ACCUMULATEAdd the rectangle specified by lpRectBounds to the bounding rectangle (using a rectangle union operation). DCB_DISABLETurn off bounds accumulation. DCB_ENABLETurn on bounds accumulation. (The default setting for bounds accumulation is disabled.) 4މKk�K) "��2�������Remarks[,7�KƌK/ ,�Y�2����������Controls the accumulation of bounding-rectangle information for the specified device context. Windows can maintain a bounding rectangle for all drawing operations. This rectangle can be queried and reset by the application. The drawing bounds are useful for invalidating bitmap caches. Returns��k�K��K3 4�k�2����������The current state of the bounding rectangle, if the function is successful. Like flags, the return value can be a combination of DCB_ values, as shown in the following list: CƌK�K2 4�"�R��~Q������ValueMeaning����K܎K@ N�W�R��~��������������DCB_ACCUMULATEThe bounding rectangle is not empty. This value will always be set. DCB_DISABLEBounds accumulation is off. DCB_ENABLEBounds accumulation is on. 4�K�K(  ��������See Alsob-܎Kr�K5 :�Z����Ń<���������CDC::GetBoundsRect, ::SetBoundsRect �g�K�K1�����������K[�K�KCListBox::FindStringExactEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CLr�K�Kr�KistBox')")Er�K[�K(  �:�������CListBox::FindStringExact=�K��K) "�(�2�������Windows 3.1 onlyw?[�K�K8 @�~�r�=���~��������int FindStringExact( int nIndexStart, LPSTR lpszFind );)��K8�K& ��2������K�K��K2 4�2�R�A��~Q�A�����ParameterDescriptionr.8�K��KD V�]�R�A��~�A�������������nIndexStartSpecifies the zero-based index of the item before the first item to be searched. When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nIndexStart. If nIndexStart is -1, the entire list box is searched from the beginning. lpszFindPoints to the null-terminated string to search for. This string can contain a complete filename, including the extension. The search is not case-sensitive, so the string can contain any combination of uppercase and lowercase letters. 4��K)�K) "��2�������Remarks�l��K��KY ����2�����姀��������姀���������An application calls the FindStringExact member function to find the first list box string that matches the string specified in lpszFind. If the list box was created with an owner-drawn style but without the LBS_HASSTRINGS style, the FindStringExact member function attempts to match the doubleword value against the value of lpszFind. Returns{O)�Ki�K, (���2��������The index of the matching item, or LB_ERR if the search was unsuccessful. 5��K��K) "��2�������See AlsoCi�K�K< H���2����8�݀���������CListBox::FindString, LB_FINDSTRING, LB_FINDSTRINGEXACT �e��K��K1������������K��Ke�KCListBox::GetCaretIndexEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")D�K��K) "�6�2�������CListBox::GetCaretIndex=��K4�K) "�(�2�������Windows 3.1 onlyJ��K~�K, (�<�r�=���~����int GetCaretIndex() const;)4�K��K& ��2������4~�K��K) "��2�������Remarks���K��K4 6���2�����������An application calls the GetCaretIndex member function to determine the index of the item that has the focus rectangle in a multiple-selection list box. The item may or may not be selected. Returns����K��K' ���2������The zero-based index of the item that has the focus rectangle in a list box. If the list box is a single-selection list box, the return value is the index of the item that is selected, if any. 5��K��K) "��2�������See Alsoi3��Ke�K6 <�f�2������C���������CListBox::SetCaretIndex, LB_GETCARETINDEX �e��K��K1������������K?�K�LCListBox::GetItemHeightEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")De�K?�K) "�6�2�������CListBox::GetItemHeight=��K|�K) "�(�2�������Windows 3.1 only^,?�K��K2 4�X�r�=���~������int GetItemHeight( int nIndex ) const;)|�K�K& ��2������K��KN�K2 4�2�R�=��~Q�=�����ParameterDescription���K@�K6 :�y�R�=��~�=�������nIndexSpecifies the zero-based index of the item in the list box. This parameter is used only if the list box has the LBS_OWNERDRAWVARIABLE style; otherwise, it should be set to 0. 4N�Kt�K) "��2�������Remarks�x@�K%�K9 B���2�����ۢ���������An application calls the GetItemHeight member function to determine the height of items in a list box. Returns�t�KML9 @���2������������The height, in pixels, of the items in the list box. If the list box has the LBS_OWNERDRAWVARIABLE style, the return value is the height of the item specified %�KMLe�Kby nIndex. If an error occurs, the return value is LB_ERR. 5%�K�L) "��2�������See Alsoi3ML�L6 <�f�2�������(f������LB_GETITEMHEIGHT, CListBox::SetItemHeight �e�L�L1�����������L�LWLCListBox::SetCaretIndexEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")D�L�L) "�6�2�������CListBox::SetCaretIndex=�LL) "�(�2�������Windows 3.1 onlyu=�LwL8 @�z�r�=���~��������int SetCaretIndex( int nIndex, BOOL bScroll = TRUE );)L�L& ��2������KwL�L2 4�2�R�=��~Q�=�����ParameterDescriptionB
�L-L8 >��R�=��~�=���������nIndexSpecifies the zero-based index of the item to receive the focus rectangle in the list box. bScrollIf this value is 0, the item is scrolled until it is fully visible. If this value is not 0, the item is scrolled until it is at least partially visible. 4�LaL) "��2�������Remarks�-LqL4 6���2�����������An application calls the SetCaretIndex member function to set the focus rectangle to the item at the specified index in a multiple-selection list box. If the item is not visible, it is scrolled into view. ReturnsHaL�L) "�>�2�������LB_ERR if an error occurs. 5qL�L) "��2�������See Alsoi3�LWL6 <�f�2����}���������CListBox::GetCaretIndex, LB_SETCARETINDEX �e�L�L1-����������L1L-LCListBox::SetItemHeightEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CListBox')")DWL1L) "�6�2�������CListBox::SetItemHeight=�LnL) "�(�2�������Windows 3.1 onlys;1L�L8 @�v�r�=���~��������int SetItemHeight( int nIndex, UINT cyItemHeight );)nL
L& ��2������K�LUL2 4�2�R�a��~Q�a�����ParameterDescription8�
L�	L> J���R�a��~�a�����������nIndexSpecifies the zero-based index of the item in the list box. This parameter is used only if the list box has the LBS_OWNERDRAWVARIABLE style; otherwise, it should be set to 0. cyItemHeightSpecifies the height, in pixels, of the item. 4UL�	L) "��2�������Remarksw1�	L8LF Z�c�2�����t �������������An application calls the SetItemHeight member function to set the height of items in a list box. If the list box has the LBS_OWNERDRAWVARIABLE style, this function sets the height of the item specified by nIndex. Otherwise, this function sets the height of all items in the list box. ReturnsW.�	L�L) "�\�2�������LB_ERR if the index or height is invalid. 58L�L) "��2�������See Alsoi3�L-L6 <�f�2���㾏��������CListBox::GetItemHeight, LB_SETITEMHEIGHT �e�L�L1�����������L

L�LCEdit::GetFirstVisibleLineEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")G-L

L) "�<�2�������CEdit::GetFirstVisibleLine=�LG
L) "�(�2�������Windows 3.1 OnlyP$

L�
L, (�H�r�=���~����int GetFirstVisibleLine() const;)G
L�
L& ��2������4�
L�
L) "��2�������Remarks�r�
L�L3 6���2�����������An application calls GetFirstVisibleLine to determine the topmost visible line in an edit control. Returns�k�
L*L& ���2������The zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. 5�L_L) "��2�������See AlsoF*L�L* $�8�2��������EM_GETFIRSTVISIBLELINE �a_LC@L1����������C@L�@L#DLCEdit::GetPasswordCharEnableButton("up");�LC@L�LChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")C�L�@L) "�4�2�������CEdit::GetPasswordChar=C@L�@L) "�(�2�������Windows 3.1 OnlyM!�@LAL, (�B�r�=���~����char GetPasswordChar() const;)�@L9AL& ��2������4ALmAL) "��2�������RemarksV9AL�BL; D�7�2��������������An application calls the GetPasswordChar member function to retrieve the password character displayed in an edit control when the user enters text. If the edit control is created with the ES_PASSWORD style, the default password character is set to an asterisk (*). Returns��mAL�CL- (�)�2��������Specifies the character to be displayed in place of the character typed by the user. The return value is NULL if no password character exists. 5�BL�CL) "��2�������See Alsoj4�CL#DL6 <�h�2������ʂ�р�����EM_SETPASSWORDCHAR, CEdit::SetPasswordChar �]�CL�DL1�����������DL�DLSILCEdit::SetReadOnlyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CEdit')")?#DL�DL) "�,�2�������CEdit::SetReadOnly=�DL-EL) "�(�2�������Windows 3.1 Onlyb0�DL�EL2 4�`�r�=���~������BOOL SetReadOnly( BOOL bReadOnly = TRUE );)-EL�EL& ��2������K�ELFL2 4�2�R�=��~Q�=�����ParameterDescription���EL�FL< F�u�R�=��~�=���������bReadOnlySpecifies whether to set or remove the read-only state of the edit control. A value of TRUE sets the state to read-only; a value of FALSE sets the state to read/write. 4FL-GL) "��2�������Remarks)��FLVHLG \���2�������������+��������An application calls the SetReadOnly member function to set the read-only state of an edit control. The current setting can be found by testing the ES_READONLY flag in the return value of CWnd::GetStyle. ReturnsjD-GL�HL& ���2������Nonzero if the operation is successful, or 0 if an error occurs. 5VHL�HL) "��2�������See Also^(�HLSIL6 <�P�2���������+������EM_SETREADONLY, CWnd::GetStyle �^�HL�IL1,����������IL"JL(�LCRect::SubtractRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CRect')")@SIL"JL) "�.�2�������CRect::SubtractRect=�IL_JL) "�(�2�������Windows 3.1 only�M"JL�JL8 @���r�=���~��������BOOL SubtractRect(const LPRECT lpRectSrc1, const LPRECT lpRectSrc2 );)_JL
KL& ��2������K�JLXKL2 4�2�R�=��~Q�=�����ParameterDescription�
KLqLLJ b���R�=��~�=���������������lpRectSrc1Points to the RECT structure from which a rectangle is to be subtracted. lpRectSrc2Points to the RECT structure that is to be subtracted from the rectangle pointed to by lpRectSrc1. 4XKL�LL) "��2�������Remarks7�qLL�OLq ����2��������������������������������Makes the dimensions of a CRect object equal to the subtraction of lpRectSrc2 from lpRectSrc1. The rectangle specified by lpRectSrc2 is subtracted from the rectangle specified by lpRectSrc1 only when the rectangles intersect completely in either the x- or y-direction. For example, if lpRectSrc1 were (10,10, 100,100) and lpRectSrc2 were (50,50, 150,150), the rectangle pointed to by lpRectSrc1 would contain the same coordinates as the original lpRectSrc1 when the function returned. If lpRectSrc1 were (10,10, 100,100) and lpRectSrc2 were (50,10, 150,150), however, the rectangle pointed to by lpRectSrc1 would contain the coordinates (10,10, 50,100) when the function returned. 4�LL�L) "��2�����OL�LSIL���Returns^8�OLz�L& �p�2������Nonzero if the function is successful; otherwise, 0. 5�L��L) "��2�������See Alsoy=z�L(�L< H�z�2�����Ԕ����������CRect::IntersectRect, ::UnionRect, ::SubtractRect �i��LL1����������L	�L��LCComboBox::FindStringExactEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")G(�L	�L) "�<�2�������CComboBox::FindStringExact=LF�L) "�(�2�������Windows 3.1 only~F	�LĂL8 @���r�=���~��������int FindStringExact( int nIndexStart, LPCSTR lpszFind ) const;)F�L�L& ��2������KĂL8�L2 4�2�R�A��~Q�A�����ParameterDescriptions/�L��LD V�_�R�A��~�A�������������nIndexStartSpecifies the zero-based index of the item before the first item to be searched. When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nIndexStart. If nIndexStart is -1, the entire list box is searched from the beginning. lpszFindPoints to the null-terminated string to search for. This string can contain a complete filename, including the extension. The search is not case sensitive, so this string can contain any combination of uppercase and lowercase letters. 48�L߅L) "��2�������Remarks�Z��L��LY ����2�����姀��������姀���������Call the FindStringExact member function to find the first list-box string (in a combo box) that matches the string specified in lpszFind. If the combo box was created with an owner-drawn style but without the CBS_HASSTRINGS style, FindStringExact attempts to match the doubleword value against the value of lpszFind. Returns�Z߅L�L, (���2��������The zero-based index of the matching item, or CB_ERR if the search was unsuccessful. 5��LM�L) "��2�������See Alsoi3�L��L6 <�f�2���㒗���������CComboBox::FindString, CB_FINDSTRINGEXACT �oM�LV�L1"���������V�L��L��LCComboBox::GetDroppedControlRectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")M$��L��L) "�H�2�������CComboBox::GetDroppedControlRect=V�L��L) "�(�2�������Windows 3.1 onlyj8��LJ�L2 4�p�r�=���~������void GetDroppedControlRect( LPRECT lprect ) const;)��Ls�L& ��2������KJ�L��L2 4�2�R�=��~Q�=�����ParameterDescription�Ns�LA�L5 :���R�=��~�=�������lprectPoints to the RECT structure that is to receive the coordinates. 4��Lu�L) "��2�������Remarks��A�LL�L4 6�G�2�����������Call the GetDroppedControlRect member function to retrieve the screen coordinates of the visible (dropped-down) list box of a drop-down combo box. See AlsoHu�L��L* $�<�2��������CB_GETDROPPEDCONTROLRECT �iL�L.�L1����������.�Lu�L�LCComboBox::GetDroppedStateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")G��Lu�L) "�<�2�������CComboBox::GetDroppedState=.�L��L) "�(�2�������Windows 3.1 onlyM!u�L��L, (�B�r�=���~����BOOL GetDroppedState() const;)��L(�L& ��2������4��L\�L) "��2�������Remarks��(�L�L4 6��2�����������Call the GetDroppedState member function to determine whether the list-box of a drop-down combo box is visible (dropped down). ReturnsZ4\�Lx�L& �h�2������Nonzero if the listbox is visible; otherwise, 0. 5�L��L) "��2�������See Also[+x�L�L0 0�V�2����������CB_SHOWDROPDOWN, CB_GETDROPPEDST��L�L��LATE �g��L��L1#�����������L��L��LCComboBox::GetExtendedUIEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")E�L��L) "�8�2�������CComboBox::GetExtendedUI=��L.�L) "�(�2�������Windows 3.1 onlyK��Ly�L, (�>�r�=���~����BOOL GetExtendedUI() const;).�L��L& ��2������4y�L��L) "��2�������Remarks���L��L- (���2��������Call the GetExtendedUI member function to determine whether a combo box has the default user interface or the extended user interface. The extended user interface differs from the default user interface in the following ways: �W��Ly�L8 @���R��2�h��"������Clicking the static control displays the list box CBS_DROPDOWNLIST style only). �M��L�L> L���R��2�h��"��������Pressing the DOWN ARROW key displays the list box (F4 is disabled). �ny�L��L2 4���R��2�h��"����Scrolling in the static control is disabled when the item list is not visible (arrow keys are disabled). 3�L��L(  ��������ReturnspK��LG�L% ��������Nonzero if the combo box has the extended user interface; otherwise, 0. 4��L{�L(  ��������See Alsoh3G�L��L5 :�f����CJ���������CComboBox::SetExtendedUI, CB_GTEXTENDEDUI �g{�L{�L1?���������{�L��L��LCComboBox::GetItemHeightEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")D��L��L(  �8�������CComboBox::GetItemHeight={�L��L) "�(�2�������Windows 3.1 only^,��LZ�L2 4�X�r�=���~������int GetItemHeight( int nIndex ) const;)��L��L& ��2������KZ�L��L2 4�2�R�=��~Q�=�����ParameterDescription����L��LH ^��R�=��~�=�������������nIndexSpecifies the component of the combo box whose height is to be retrieved. If the nIndex parameter is -1, the height of the edit-control (or static-text) portion of the combo box is retrieved. If the combo box has the CBS_OWNERDRAWVARIABLE style, nIndex specifies the zero-based index of the list item whose height is to be retrieved. Otherwise, nIndex should be set to 0. 4��L��L) "��2�������Remarks�m��Lw�L9 B���2�����ۢ���������Call the GetItemHeight member function to retrieve the height of list items in a combo box. Returns�s��L�L, (���2��������The height, in pixels, of the specified item in a combo box. The return value is CB_ERR if an error occurred. 5w�LK�L) "��2�������See Also�F�L��L< H���2����8ȹ=����������CComboBox::SetItemHeight, WM_MEASUREITEM, CB_GETITEMHEIGHT �gK�Le�L1.���������e�L��L|MCComboBox::SetExtendedUIEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")E��L��L) "�8�2�������CComboBox::SetExtendedUI=e�L��L) "�(�2�������Windows 3.1 onlyc1��LJ�L2 4�b�r�=���~������int SetExtendedUI( BOOL bExtended = TRUE );)��Ls�L& ��2������KJ�L��L2 4�2�R�=��~Q�=�����ParameterDescription�s�L��L< F���R�=��~�=���������bExtendedSpecifies whether the combo box should use the extended user interface or the default user interface. A value of TRUE selects the extended user interface; a value of FALSE selects the standard user interface. 4��L�L) "��2�������RemarksV��LsM: B�9�2�������������Call the SetExtendedUI member function to select either the default user interface or the extended user interface for a combo box that has the CBS_DROPDOWN or CBS_DROPDOWNLIST�LsM��L style. The extended user interface differs from the default user interface in the following ways: �W�LM8 @���R��2�h��"������Clicking the static control displays the list box CBS_DROPDOWNLIST style only). �MsM�M> L���R��2�h��"��������Pressing the DOWN ARROW key displays the list box (F4 is disabled). �rM1M2 4���R��2�h��"����Scrolling in the static control is disabled when the item list is not visible (the arrow keys are disabled). 3�MdM(  ��������Returns{M1M�M. ,�����������CB_OKAY if the operation is successful or CB_ERR if an error occurred. 4dMM(  ��������See Alsoi4�M|M5 :�h������%A��������CComboBox::GetExtendedUI, CB_SETEXTENDEDUI �gMM1Z���������MXM�MCComboBox::SetItemHeightEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CComboBox')")D|MXM(  �8�������CComboBox::SetItemHeight=M�M) "�(�2�������Windows 3.1 onlys;XMM8 @�v�r�=���~��������int SetItemHeight( int nIndex, UINT cyItemHeight );)�M1M& ��2������KM|M2 4�2�R�a��~Q�a�����ParameterDescription�1M�ML f���R�a��~�a�����������������nIndexSpecifies whether the height of list items or the height of the edit-control (or static-text) portion of the combo box is set. If the combo box has the CBS_OWNERDRAWVARIABLE style, nIndex specifies the zero-based index of the list item whose height is to be set; otherwise, nIndex must be 0 and the height of all list items will be set. If nIndex is -1, the height of the edit-control or static-text portion of the combo box is to be set. �e|M0M5 :���R�a��~�a�������cyItemHeightSpecifies the height, in pixels, of the combo box component identified by nIndex. 4�MdM) "��2�������Remarks�0Mf
M; D���2�����t ����������Call the SetItemHeight member function to set the height of list items in a combo box or the height of the edit-control (or static-text) portion of a combo box. The height of the edit-control (or static-text) portion of the combo box is set independently of the height of the list items. An application must ensure that the height of the edit-control (or static-text) portion isn't smaller than the height of a particular list box item. Returnsd;dM�
M) "�v�2�������CB_ERR if the index or height is invalid; otherwise, 0 5f
M�
M) "��2�������See Also�F�
M�M< H���2����l��ހ���������CComboBox::GetItemHeight, WM_MEASUREITEM, CB_SETITEMHEIGHT �]�
MM1����������MLM�MCStatic::GetIconEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CStatic')")=�MLM) "�(�2�������CStatic::GetIcon=M�M) "�(�2�������Windows 3.1 only@LM�M, (�(�r�=���~����HICON GetIcon();)�M�M& ��2������3�M%
M(  ��������Returns���MM2 2�k����������Returns the handle of the icon associated with an icon resource. This function should be called only for CStatic objects that represent icons created with the SS_ICON style. 4%
M@M(  ��������See Also\'M�M5 :�N������BB�������STM_GETICON, CStatic::SetIcon �]@M*M1����������*MfM
CMCStatic::SetIconEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CStatic')")<�MfM(  �(�������CStatic::SetIcon=*M�M) "�(�2�������Windows 3.1 onlyU#fM@M2 4�F�r�=���~������HICON SetIcon( HICON hIcon );�M@M�M)�M5@M& ��2������K@M�@M2 4�2�R�=��~Q�=�����ParameterDescriptionqB5@M�@M/ .���R�=��~�=�����hIconIdentifies the icon to associate with an icon resource. 4�@M%AM) "��2�������Remarks�t�@M�AM9 B���2�������������Associates an icon with an icon resource. This is a CStatic object created with the SS_ICON style. Returns�l%AMdBM& ���2������The handle of the icon that was previously associated with the icon resource, or 0 if an error occurred. 5�AM�BM) "��2�������See Alsoq5dBM
CM< H�j�2��������V�L������STM_SETICON, ::LoadIcon, CStatic::GetIcon �i�BM�CM1�����������CM�CM�GMCScrollBar::ShowScrollBarEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CScrollBar')")F
CM�CM) "�:�2�������CScrollBar::ShowScrollBar=�CM'DM) "�(�2�������Windows 3.1 only_-�CM�DM2 4�Z�r�=���~������void ShowScrollBar( BOOL bShow = TRUE);)'DM�DM& ��2������K�DM�DM2 4�2�R�=��~Q�=�����ParameterDescription���DM�EM6 :��R�=��~�=�������bShowSpecifies whether the scroll bar is shown or hidden. If this parameter is TRUE, the scroll bar is shown; otherwise, it is hidden. 4�DM�EM) "��2�������Remarks���EM�FM/ ,�E�2����������Shows or hides a scroll bar. An application should not call this function to hide a scroll bar while processing a scroll-bar notification message. See Also���EM�GM[ ���2�����Df̀�����%������4�ڀ�����J������CScrollBar::GetScrollPos, ::GetScrollRange, CWnd::ScrollWindow, CScrollBar::SetScrollPos, CScrollBar::SetScrollRange �k�FMDHM1@���������DHM�HM�NMCScrollBar::EnableScrollBarEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CScrollBar')")H�GM�HM) "�>�2�������CScrollBar::EnableScrollBar=DHM�HM) "�(�2�������Windows 3.1 onlyr@�HM;IM2 4���r�=���~������BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH );)�HMdIM& ��2������K;IM�IM2 4�2�R�U��~Q�U�����ParameterDescription��dIM�JM0 .�U�R�U��~�U�����nArrowFlagsSpecifies whether the scroll arrows are enabled or disabled, and which arrows are enabled or disabled. This parameter can be one of the following values: C�IM�JM2 4�"�R����}Q�������ValueMeaning�Z�JMnLMH ^���R����}�������������������ESB_ENABLE_BOTHEnables both arrows of a scroll bar. ESB_DISABLE_LTUPDisables the left arrow of a horizontal scroll bar, or the up arrow of a vertical scroll bar. ESB_DISABLE_RTDNDisables the right arrow of a horizontal scroll bar, or the down arrow of a vertical scroll bar. ESB_DISABLE_BOTHDisables both arrows of a scroll bar. 4�JM�LM) "��2�������RemarksrEnLMMM- *���2���������Enables or disables one or both arrows of a scroll bar. Returns���LM�MM' �c�2������Nonzero if the arrows are enabled or disabled as specified. Otherwise, it is 0, which indicates that the arrows are already in the requested state or that an error occurred. 5MM!NM) "��2�������See Alsoz>�MM�NM< H�|�2�����e}����hg��������CWnd::EnableScrollBar, CScrollBar::EnableScrollBar q@!NMOM1����������OMoOMہMMicrosoft Foundation Class Library ReferenceDisableButton("up")c:�NMoOM) "�t�2�������Microsoft Foundation Class Library Reference (MFC 1.0)#`OM��M� T���pȘR���J�Q�����%�Z�����&�Z�����'�Z�����pd,������L
�����*�Z�����+�Z�����,oOM��M�NM�Z������Z������Z������Z�����Windows Application Class Window Classes GDI (Graphical Device Interface) Classes Other Windows Classes OLE (Object Linking and Embedding) Classes Run-Time Object Model Class File Classes Object Input/Output Exceptions Collections Miscellaneous Support Classes Global Functions and Macros =oOMہM- *� �pȘR���J��7���Copyright �]��Mi�M1����������i�M��M��MWindow ClassesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')"):ہM��M(  �$�������Window Classes$�i�MDŽM� �5�R���s~���+������{Yh������;c-ڀ������^I���������K���������f�����㉄N�������CWndBase class for all windows CFrameWndMain window base class for the SDI (Single Document Interface) desktop window CMDIFrameWndBase class for the MDI (Multiple Document Interface) desktop window CMDIChildWndBase class for MDI child windows CDialogBase class for modeless dialog windows CModalDialogBase class for modal dialog windows CButtonButton control windows .���M��Mn ����R���s~���Є'�������9�������"���������3Iـ�����M3�0������CComboBoxCombo box control windows CEditEdit control windows CListBoxList box control windows CScrollBarScroll bar control windows CStaticStatic control windows �RDŽMx�M1-���������x�M̆MȉMGDIEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')")T,��M̆M(  �X�������GDI (Graphical Device Interface) Classes{x�M�M� ���R�g��~�g㪌������=�D�������?��;�����㚳�*�����C���������������LC�m������VOܙ�������Q�������CDCBase class for display contexts CClientDCDisplay contexts for client areas of windows CMetaFileDCMetafile device contexts CPaintDCDisplay contexts used in OnPaint member functions CWindowDCDisplay contexts for entire windows CGdiObjectBase class for GDI drawing tools CBitmapGDI physical bitmaps CBrushGDI physical brushes �~̆MȉM_ ����R�g��~�g����������4K2+�������������v������CFontGDI physical fonts CPaletteGDI physical palettes CPenGDI physical pens CRgnGDI physical regions �d�M]�M1?���������]�M��M��MOther Windows ClassesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')")AȉM��M(  �2�������Other Windows Classes�]�M��M_ ��_�R��1�����������'��������\
������	������CMenuMenu structures CPoint(X, Y) points in a device context CSizeRelative positions or coordinate pairs CRectRectangular regions in a device context �[��M8�M1����������8�Mp�M;�MFile ClassesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')")8��Mp�M(  � �������File Classes�z8�M;�MQ r���R�?��~�?���������^������8k������CFileBinary disk files CMemFileIn-memory files CStdioFileBuffered stream disk files, usually text mode �bp�M΍M1����������΍M
�M��MObject Input/OutputEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')")?;�M
�M(  �.�������Object Input/Output�c΍M��MC V���R����~����ؘ�������ԏ�������CArchivePersistent storage for objects CDumpContextDestinations for diagnostic output �Y
�M=�M1����������=�Ms�M:�MExceptionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')")6��Ms�M(  ��������Exceptions�?=�M:�M| ƀ�R�w��}�w���G������hH�S������T�퓀�����c�띀�������������f�A������CExceptionAbs�M:�M��Mstract base class for exceptions CArchiveExceptionArchive-specific exceptions CFileExceptionFile-specific exceptions CMemoryExceptionOut of memory exceptions CNotSupportedExceptionFunction not supported exceptions CResourceExceptionWindows resource not found exceptions �Zs�M��M1������������M��M��MCollectionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')")7:�M��M(  ��������Collections`��M�M� J���R���~���vT�u������&Ikŀ�����������������
l���������(ŀ����〥�f�����㌎N
�������㱸�Ҁ���������
������CByteArrayArrays of bytes CDWordArrayArrays of 32-bit double-words CObArrayArrays of CObject pointers CPtrArrayArrays of void pointers CStringArrayArrays of strings CWordArrayArrays of 16-bit words CObListLists of CObject pointers CPtrListLists of void pointers CStringListList of strings |��M6�M� ���R���~������������㲼�������������4��������kڀ������㾓�������S����������CMapPtrToWordMappings of void pointers to 16-bit words CMapPtrToPtrMappings of void pointers to void pointers CMapStringToObMappings of strings to CObject pointers CMapStringToPtrMappings of void pointers to CObject pointers CMapStringToStringMappings of strings to strings CMapWordToObMappings of 16-bit words to CObject pointers {@�M��M; F���R���~���$7���������CMapWordToPtrMappings of 16-bit words to void pointers �l6�MN�M1����������N�M��M^�MMiscellaneous Support ClassesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')")I!��M��M(  �B�������Miscellaneous Support Classes�vN�M^�MQ r���R�Y��~�Y�x�
1������T�������F�7������CStringCharacter strings CTimeAbsolute time and date values CTimeSpanRelative time and date values �j��M��M1
�����������M@�M�MGlobal Functions and MacrosEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')")G^�M@�M(  �>�������Global Functions and Macros�s��M�Mf ����R���%}���	�ŀ����々�C�������$������:�@ۀ�������All Macros and Global FunctionsAlphabetical listing of all macros and global functions Diagnostic ServicesGlobal memory diagnostic functions and macros (Debug only) Exception ProcessingGlobal exception throwing and catching functions and macros Message-Map ReferenceList of all CWnd message map entries with message-handler function prototypes N@�Mg�M1��������������g�MNCopyrightDisableButton("up")&��M��M0 .���pȘR������������Microsoft Foundation Class Library Reference,     Windows NT Beta - October 1992 Information in this on-line help system is subject to change without notice and does not represent a commitment on the part of Microsoft Corporation. The software and/or files described in this on-line help system are furnished under a license agreement or nondisclosure agreement. The software and/or files may be used or copied only in accordance with the terms of the agreement. The purchaser may make one �g�M��M/ ,���pȘR�����������copy of the software for backup purposes. No part of this on-line help system may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or information and retrieval systems, for any purpose other than the purchaser's personal use, without the written permission of Microsoft Corporation. (C)  Copyright Microsoft Corporation, 1992. All rights reserved.      Simultaneously published in the U.S. and Canada. V/��MN' �^�pȘR����     Help Database Build Date: 29 Sep 1992 ��MN�M�]��M�N1L����������N�N�Nclass CArchiveEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_008')"):N�N(  �$�������class CArchive9�N
N* $����R�����Description���N�N- (�I���������The CArchive class allows you to save a complex network of objects in a permanent binary form (usually disk storage) that "persists" after those objects are deleted. Later you can load the objects from persistent storage, "reconstituting" them in memory. This process of making data persistent is called "serialization." You can think of an archive object as a kind of binary stream. Like an input/output stream, an archive is associated with a file and permits the buffered writing and reading of data to and from storage. An input/output stream processes sequences of ASCII characters, but an archive processes binary object data in an efficient, nonredundant format. k
NINh �����������������4����;�"�����*0�������When you construct a CArchive object, you attach it to an object of class CFile (or a derived class) that represents an open file. You also specify whether the archive will be used for loading or storing. A CArchive object can process not only primitive types but also objects of CObject-derived classes designed for serialization. A serializable class must have a Serialize member function, and it must use the DECLARE_SERIAL and IMPLEMENT_SERIAL macros, as described under class CObject. ��N`NF Z��������������������The overloaded extraction (>>) and insertion (<<) operators are convenient archive programming interfaces that support both primitive types and CObject-derived classes. #include <afx.h> See AlsoUIN�N; F�4�����������L
������CFile, CObject :`N�N) "�"�2�������Preconditions��N	N3 4���2����������You must create a CFile object before you can create a CArchive object. In addition, you must ensure that the archive's load/store status is compatible with the file's open mode. You are limited to one active archive per file. ;�NG	N) "�$�2�������Public MembersE	N�	N) "�8�2�������Construction/Destruction�G	N�
Nd ��q�R�;��~�;�z��}��������$&����������Yu=؀�������CArchiveCreates a CArchive object. ~CArchiveDestroys a CArchive object and flushes unwritten data. CloseFlushes unwritten data and disconnects from the CFile. ?�	N�
N) "�,�2�������Basic Input/Outputk��
NRNn ����R�;��~�;�� �؀�����b�G������c�G������qw
������t�W܀�����FlushFlushes unwritten data from the archive buffer. operator >>Stores objects and primitive types to the archive. operator <<Loads objects and primitive types from the archive. ReadReads raw bytes. WriteWrites raw bytes. 3
�
N�N) "��2�������Status�RN�
NX ~�U�R�G��~�G��z�������㇠l�������7��������GetFileGets the CFile object pointer for this archive. IsLoadingDetermines if the archive is loading. IsStoringDetermines if the archive is storing. >�N�
N) "�*�2�������Protected Members@�
NN) "�.�2�������Object Input/Output���
N�N\ ���R�[��~�[�`GJ��������4�����@�݀������4�����ReadObjectCalls an object's Serialize function for loading. WriteObjectCalls an object's Serialize function for storing. �`N�N1�����������N�N�KNCArchive::CArchiveEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")>�N�N(  �,�������CArchive::CArchive���N�@NL f�9�r�=���~�����������N�@N�N�����CArchive( CFile* pFile, UINT nMode, int nBufSize = 512, void FAR* lpBuf = NULL )throw( CMemoryException, CArchiveException, CFileException );)�N�@N& ��2������K�@N&AN2 4�2�R�=��~Q�=�����ParameterDescriptionK�@NqBND V��R�=��~�=�������������pFileA pointer to the CFile object that is the ultimate source or destination of the persistent data. nModeA flag that specifies whether objects will be loaded from or stored to the archive. The nMode parameter must have one of the following values: C&AN�BN2 4�"�R��W~Q�������ValueMeaning��qBN�CND V�M�R��W~���������������CArchive::loadLoad data from the archive. Requires only CFile read permission. CArchive::storeSave data to the archive. Requires CFile write permission. �W�BN$DN/ .���R�=��~�=�����nBufSizeAn integer that specifies the size of the internal file buffer, in bytes. ���CNEN. *���R����=�����Note:The default buffer size is 512 bytes. If you routinely archive large objects, you will improve performance if you use a larger buffer size that is a multiple of the file buffer size. D$DNVFN< F��R�=��~�=���������lpBufAn optional FAR pointer to a user-supplied buffer of size nBufSize. If you do not specify this parameter, the archive allocates a buffer from the local heap and frees it when the object is destroyed. The archive does not free a user-supplied buffer. 4EN�FN) "��2�������Remarks��VFN^INR r��2�����������z����񚤀������Constructs a CArchive object and specifies whether it will be used for loading or storing objects. You cannot change this specification after you have created the archive. You may not use CFile operations to alter the state of the file until you have closed the archive. Any such operation will damage the integrity of the archive. You may access the position of the file pointer at any time during serialization by (1) obtaining the archive's file object from the GetFile member function and then (2) using the CFile::GetPosition function. You should call CArchive::Flush before obtaining the position of the file pointer. 4�FN�IN) "��2�������Example(^IN�IN% ��0�������IN:KNk ��+�0���	�������	��������	������	��������ؘ����	��ؘ����	��extern char* pFileName;CFile f;char buf[512];if( !f.Open( pFileName, CFile::modeCreate | CFile::modeWrite ) ) {   #ifdef _DEBUG      afxDump << "Unable to open file" << "\n";      exit( 1 );   #endif}CArchive ar( &f, CArchive::store, 512, buf );4�INnKN(  ��������See Also�>:KN�KNG ^�|����Yu=؀���� �؀���Ż�A������CArchive::Close, CArchive::Flush, CFile::Close �anKN�LN1�����������LN�LN ONCArchive::~CArchiveEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")?�KN�LN(  �.�������CArchive::~CArchive<�LNMN, (� �r�=���~����~CArchive();)�LN)MN& ��2������4MN]MN) "��2�������Remarks^)MN�NNF Z�1�2�������Yu=؀���������The CArchive destructor closes the archive if it is not closed already. However, you should call the member function Close before calling the destructor. After you have used the CFile object for archiving, you must close and destroy it as you usually would. See Alsoe)]MN ON< H�R�2����� �؀����%������CArchive::Flush, CFile::Close �]�NN�ON1�����������ON�N��NCArchive::CloseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")< ON�N) "�&�2�������CArchive::Close�ON�N ONq>�ON}�N3 6�|�r�=���~�������void Close()throw( CArchiveException, CFileException );)�N��N& ��2������4}�NڀN) "��2�������RemarksU��N/�N@ N�+�2������	���������Flushes any data remaining in the buffer, closes the archive, and disconnects the archive from the file. No further operations on the archive are permitted. After you close an archive, you can create another archive for the same file or you can close the file. The member function Close ensures that all data is transferred from the archive to the file, and it makes the archive unavailable. To complete the transfer from the file to the storage medium, you must first use CFile::Close and then destroy the CFile object. 5ڀNd�N) "��2�������See AlsoG/�N��N0 0�.�2����� �؀�����CArchive::Flush �]d�N9�N1���������9�Nu�N
�NCArchive::FlushEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")<��Nu�N) "�&�2�������CArchive::Flush^+9�NӄN3 6�V�r�=���~�������void Flush()throw( CFileException );)u�N��N& ��2������4ӄN0�N) "��2�������RemarksW��N��NA P�-�2�����〴�����������Forces any data remaining in the archive buffer to be written to the file. The member function Flush ensures that all data is transferred from the archive to the file. You must call CFile::Close to complete the transfer from the file to the storage medium. See Also�;0�N
�NH `�v�2����Yu=؀����������%������CArchive::Close, CFile::Flush, CFile::Close �_��N��N1�����������N؇No�NCArchive::GetFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")>
�N؇N) "�*�2�������CArchive::GetFileG��N�N, (�6�r�=���~����CFile* GetFile() const;)؇NH�N& ��2������4�N|�N) "��2�������Remarks�rH�N'�N9 B���2�������������Gets the CFile object pointer for this archive. You must flush the archive before using GetFile. Returns`4|�N��N, (�h�2��������A constant pointer to the CFile object in use. 4'�N��N) "��2�������Example(��N�N% ��0������B��No�NJ d���0���	��ؘ����	�������	��z���	��extern CArchive ar;const CFile* fp = ar.GetFile();�a�N�N1����������N@�N��NCArchive::IsLoadingEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")?o�N@�N(  �.�������CArchive::IsLoadingG�N��N, (�6�r�=���~����BOOL IsLoading() const;)@�N��N& ��2������4��N�N) "��2�������Remarks����N��N: B��2�������4��������Determines if the archive is loading data. This member function is called by the Serialize functions of the archived classes. ReturnsP�N,�N/ .���2���������TRUE if the archive is currently being used for loading; otherwise FALSE. 4��N`�N) "��2�������Example(,�N��N% ��0������U`�N�NB T���0���	���ؘ����	�㇠l���	�����int i;extern CArchive ar;if( ar.IsLoading() )  ar >> i;else  ar << i;4��NS�N(  ��������See AlsoJ�N��N/ .�6�����7��������CArchive::IsStoring �aS�N/�N15��������/�Nn�Nd�NCArchive::IsStoringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")?��Nn�N(  �.�������CArchive::IsStoringG/�N��N, (�6�r�=���~����BOOL IsStoring() const;)n�NޏN& ��2������4��N�N) "��2����ޏN�N��N���RemarksV�ޏNt�NY ����2�������4��������㇠l����������Determines if the archive is storing data. This member function is called by the Serialize functions of the archived classes. If the IsStoring status of an archive is TRUE, then its IsLoading status is FALSE, and vice versa. ReturnsP�N��N/ .���2���������TRUE if the archive is currently being used for storing; otherwise FALSE. 4t�N'�N) "��2�������Example(��NO�N% ��0������U'�N��NB T���0���	���ؘ����	���7�����	�����int i;extern CArchive ar;if( ar.IsStoring() )  ar << i;else  ar >> i;4O�N�N(  ��������See AlsoJ��Nd�N/ .�6���㇠l������CArchive::IsLoading �\�N��N1�����������N+�N{�NCArchive::ReadEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')"):d�N+�N(  �$�������CArchive::Read�J��N��N? N���r�=���~�����������UINT Read( void FAR* lpBuf, UINT nMax )throw( CFileException );)+�N��N& ��2������K��N(�N2 4�2�R�=��~Q�=�����ParameterDescription����N%�N> J��R�=��~�=�����������lpBufA FAR pointer to a user-supplied buffer that is to receive the data read from the archive. nMaxAn unsigned integer specifying the number of bytes to be read from the archive. 4(�NY�N) "��2�������RemarksC�%�N��NG \���2������"�)������4��������Reads a specified number of bytes from the archive. The archive does not interpret the bytes. You can use the Read member function within your Serialize function for reading ordinary structures that are contained in your objects. Returns��Y�N��N' ���2������An unsigned integer containing the number of bytes actually read. If the return value is less than the number requested, the end of file has been reached. No exception is thrown on the end-of-file condition. 4��N��N) "��2�������Example(��N��N% ��0������J��N{�N? N���0���	��ؘ����	���"�)���	��extern CArchive ar;char pb[100];UINT nr = ar.Read( pb, 100 );�b��N�N1����������NN�N�OCArchive::ReadObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")@{�NN�N(  �0�������CArchive::ReadObject���N�N: B��r�=���~���������Protected: CObject* ReadObject( const CRuntimeClass* pClass )throw( CFileException, CArchiveException, CMemoryException );)N�N4�N& ��2������K�N�N2 4�2�R�=��~Q�=�����ParameterDescription�w4�N+�N5 :���R�=��~�=�������pClassA constant pointer to the CRuntimeClass structure that corresponds to the object that you expect to read. 4�N_�N) "��2�������Remarks��+�NX�Nk ���2����������������4�������a������*0�����Reads object data from the archive and constructs an object of the appropriate type. If the object contains pointers to other objects, those objects are constructed automatically. This protected function is normally called by the public CArchive extraction (>>) operator, overloaded for a CObject pointer. ReadObject, in turn, calls the Serialize function of the archived class. If you supply a nonzero pClass parameter, which is obtained by the RUNTIME_CLASS macro, then the function verifies the run-time class of the archived object. This assumes you have used the IMPLEMENT_SERIAL macro in the implementation of the class. 4_�N��N) "��2�������Returns�kX�N5O2 4���2����������A CObject pointer that must be safely cast to the correct deriv��N5O{�Ned class by using CObject::IsKindOf. 5��NjO) "��2�������See Alsop45O�O< H�h�2����@�݀���%
	������CArchive::WriteObject, CObject::IsKindOf �]jOhO1���������hO�O)OCArchive::WriteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")<�O�O) "�&�2�������CArchive::Write�QhO4O? N���r�=���~�����������void Write( const void FAR* lpBuf, UINT nMax )throw( CFileException );)�O]O& ��2������K4O�O2 4�2�R�=��~Q�=�����ParameterDescription��]O�O8 >�o�R�=��~�=���������lpBufA pointer to a user-supplied buffer that contains the data to be written to the archive. nMaxAn integer that specifies the number of bytes to be written to the archive. 4�O�O) "��2�������Remarks=��OOG \���2������/{������4��������Writes a specified number of bytes to the archive. The archive does not format the bytes. You can use the Write member function within your Serialize function to write ordinary structures that are contained in your objects. Example(�O0O% ��0������AO�O? N���0���	��ؘ����	���/{���	��extern CArchive ar;char pb[100];ar.Write( pb, 100 );40O�O(  ��������See AlsoE�O)O/ .�,����qw
������CArchive::Read �c�O�O1@���������O�O
OCArchive::WriteObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")A)O�O(  �2�������CArchive::WriteObject�e�O�O9 B���r�=���~���������Protected: void WriteObject( const CObject* pOb )throw( CFileException, CArchiveException );)�O�O& ��2������K�OO2 4�2�R�=��~Q�=�����ParameterDescriptionf7�OvO/ .�n�R�=��~�=�����pObA constant pointer to the object being stored. 4O�O) "��2�������Remarks:�vO�Oe ����2������������������4������*0�������Stores the specified CObject to the archive. If the object contains pointers to other objects, they are serialized in turn. This protected function is normally called by the public CArchive insertion (<<) operator, overloaded for CObject. WriteObject, in turn, calls the Serialize function of the archived class. You must use the IMPLEMENT_SERIAL macro to enable archiving. WriteObject writes the ASCII class name to the archive. This class name is validated later during the load process. A special encoding scheme prevents unnecessary duplication of the class name for multiple objects of the class. This scheme also prevents redundant storage of objects that are targets of more than one pointer. ���O�O' �K�2������The exact object encoding method (including the presence of the ASCII class name) is an implementation detail and could change in future versions of the library. ���O�
O, &�e�r����������Note:Finish creating, deleting, and updating all your objects before you begin to archive them. Your archive will be corrupted if you mix archiving with object modification. 4�O�
O(  ��������See AlsoK�
O
O/ .�8����`GJ�������CArchive::ReadObject �c�
O�O1T���������O�O?FOCArchive::operator >>EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")A
O�O(  �2�������CArchive::operator >>6��O$AO� Ҁi�r�=���~�������������������������������������friend CArchive& operator >>( CArchive &ar, CObject *& pOb )throw( CArchiveException, CFileException, CMemoryException );friend CArchive& operato�O$AO
Or >>( CArchive& ar, const CObject *& pOb )throw( CArchiveException, CFileException, CMemoryException );CArchive& operator >>( BYTE& by )throw( CArchiveException, CFileException );CArchive& operator >>( WORD& w )throw( CArchiveException, CFileException );���OBON j�S�r�=���~�����������������CArchive& operator >>( LONG& l )throw( CArchiveException, CFileException );CArchive& operator >>( DWORD& dw )throw( CArchiveException, CFileException );)$AODBO& ��2������4BOxBO) "��2�������Remarks�hDBO9DOY ����2�������*0������`GJ�������4��������Loads the indicated object or primitive type from the archive. If you used the IMPLEMENT_SERIAL macro in your class implementation, then the extraction operators overloaded for CObject call the protected ReadObject function (with a nonzero run-time class pointer). This function, in turn, calls the Serialize function of the class. Returns�VxBO�DO, (���2��������A CArchive reference that enables multiple insertion operators on a single line. 49DO�DO) "��2�������Example(�DOEO% ��0������E�DO�EO@ P���0���	���ؘ����	�㇠l���	���int i;extern CArchive ar;if( ar.IsLoading() )  ar >> i;4EO�EO(  ��������See Alsoo4�EO?FO; F�h����`GJ�������4������CArchive::ReadObject, CObject::Serialize �c�EO�FO1���������	�FOGO�MOCArchive::operator <<EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchive')")A?FOGO(  �2�������CArchive::operator <<��FO0IO� ��'�r�=���~����������������������������������������friend CArchive& operator <<( CArchive& ar, const CObject* pOb )throw( CArchiveException, CFileException );CArchive& operator <<( BYTE by )throw( CArchiveException, CFileException );CArchive& operator <<( WORD w )throw( CArchiveException, CFileException );CArchive& operator <<( LONG l )throw( CArchiveException, CFileException );CArchive& operator <<( DWORD dw )[/GO�IO, (�^�r�=���~����throw( CArchiveException, CFileException );)0IO�IO& ��2������4�IO�IO) "��2�������Remarks�6�IOwKOY ��m�2�������*0������@�݀�����4��������Stores the indicated object or primitive type to the archive. If you used the IMPLEMENT_SERIAL macro in your class implementation, then the insertion operator overloaded for CObject calls the protected WriteObject. This function, in turn, calls the Serialize function of the class. Returns�V�IO�KO, (���2��������A CArchive reference that enables multiple insertion operators on a single line. 4wKO-LO) "��2�������Example(�KOULO% ��0������R-LO�LOA R���0���	����ؘ����	���7�����	���long l;int i;extern CArchive ar;if( ar.IsStoring() )  ar >> l >> i;4ULOMO(  ��������See Alsop5�LO�MO; F�j����@�݀�����4������CArchive::WriteObject, CObject::Serialize �fMO#NO1���������
#NOfNO��Oclass CArchiveExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_009')")C�MOfNO(  �6�������class CArchiveException9#NO�NO* $����R�����Description�fNO�OO@ N������������������A CArchiveException object represents a serialization exception condition. The CArchiveException class includes a public data member that indicates the cause of the exception. #include <afx.h> See Also�;�NOd�Oh ��w�����ؘ�������J�����$��������OOd�O�MO������3�������CArchive, AfxThrowArchiveException, Chapter 5, Exception Processing. CommentsCArchiveException objects are constructed and thrown inside CArchive member functions. You can access these objects within the scope of a CATCH expression. The cause code is independent of the operating system. ;�OO��O) "�$�2�������Public Members9d�O؁O) "� �2�������Data Membersb-��O:�O5 :�Z�R���~��)�E�������m_causeIndicates the exception cause. E؁O�O) "�8�2�������Construction/Destruction|A:�O��O; F���R���!~���4�΀�������CArchiveExceptionConstructs a CArchiveException object. �{�O��O1�����������O��Ok�OCArchiveException::CArchiveExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchiveException')")P(��O��O(  �P�������CArchiveException::CArchiveExceptionq?��Oh�O2 4�~�r�=���~������CArchiveException( int cause = CArchiveException::none );)��O��O& ��2������Kh�O܄O2 4�2�R�=��~Q�=�����ParameterDescription����O��O< F�%�R�=��~�=����)�E������causeAn enumerated type variable that indicates the reason for the exception. See the m_cause data member for a list of the enumerators. 4܄OޅO) "��2�������Remarks�;��Ok�OR r�w�2�������������J�������J�����Constructs a CArchiveException object, storing the cause code in the object. You can create a CArchiveException object on the heap and throw it yourself or let AfxThrowArchiveException handle it for you. Do not use this constructor directly, but call the global function AfxThrowArchiveException. �qޅO
�O1��������
�OT�O3�OCArchiveException::m_causeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CArchiveException')")Gk�OT�O) "�<�2�������CArchiveException::m_cause4

�O��O* $����R�����Syntax9T�O��O(  �"�������int m_cause; 4��O��O) "��2�������Remarks���O��O, (���2��������Specifies the cause of the exception. Its values are defined by a CArchiveException enumerated type. The enumerators are: C��O�O2 4�"�R�)��|Q�)�����ValueMeaning>���O!�O` ����R�)��|�)�����������������������������CArchiveException::noneNo error occurred. CArchiveException::genericUnspecified error. CArchiveException::readOnlyTried to write into an archive opened for loading. CArchiveException::endOfFileReached end of file while reading an object. CArchiveException::writeOnlyTried to read from an archive opened for storing. CArchiveException::badIndexInvalid file format. CArchiveException::badClassTried to read an object into an object of the wrong type. �`�O��O/ .���R�)��|�)�����CArchiveException::badSchemaTried to read an object with a different version of the class. �o!�OU�O6 <���R�������������Note:These CArchiveException cause enumerators are distinct from the CFileException cause enumerators. 3��O��O(  ��������Example'U�O��O$ ����������O3�O� ���0���	������	���	���	����ؘ����	��ؘ����	���3�����	�hH�S���	���hH�S���	�����!�R���	��extern CFile f;TRY{    CArchive ar( &f, CArchive::store );}CATCH( CArchiveException, e){    if( e->m_cause == CArchiveException::readOnly )        printf( "ERROR: Archive is read-only\n" );}END_CATCH�_��OÏO1Z
��������
ÏO�O-�Oclass CByteArrayEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")<3�O�O(  �(�������class CByteArrayÏO�O3�O9ÏOE�O* $����R�����Description�n�O�OQ p���������������������������The CByteArray class supports dynamic arrays of bytes. The member functions of CByteArray are similar to the member functions of class CObArray. Because of this similarity, you can use the CObArray reference documentation for member function specifics. Wherever you see a CObject pointer as a function parameter or return value, substitute a BYTE. 'E�O+�O$ ������W2�O��O% �d�0���	��CObject* CObArray::GetAt( int <nIndex> ) const;C+�O��O% �<������for example, translates to '��O��O$ ������U0��OA�O% �`�0���	��BYTE CByteArray::GetAt( int <nIndex> ) const;���OL�OO l�y�������*0������4�����������CByteArray incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. If an array of bytes is stored to an archive, either with the overloaded insertion operator or with the Serialize member function, each element is, in turn, serialized. If you need debug output from individual elements in the array, you must set the depth of the CDumpContext object to 1 or greater. #include <afxcoll.h> 4A�O��O(  ��������See Also7L�O��O) "���������CObArray ]-��O�O0 0�Z�2����������Public MembersConstruction/Destruction�g��O��OI b���R�e��~�e�e������g�%��������CByteArrayConstructs an empty array for bytes. ~CByteArrayDestroys a CByteArray object. 3
�O��O) "��2�������Bounds���O��OR r�c�R����~���|�������+�M������h�������GetSizeGets number of elements in this array. GetUpperBoundReturns the largest valid index. SetSizeSets the number of elements to be contained in this array. 7��O1�O) "��2�������Operations����O��OD V��R�U��~�U�U�>`��������U8������FreeExtraFrees all unused memory above the current upper bound. RemoveAllRemoves all the elements from this array. ;1�O0�O) "�$�2�������Element Access���OE�OR r���R�G��~�G�&�[�������r�ͥ������t9\�������GetAtReturns the value at a given index. SetAtSets the value for a given index; array not allowed to grow. ElementAtReturns a temporary reference to the byte within the array. >0�O��O) "�*�2�������Growing the Array��E�Og�OD V�A�R�G��~�G��&�i������΍)&������SetAtGrowSets the value for a given index; grows the array if necessary. AddAdds an element to the end of the array; grows the array if necessary. >��O��O) "�*�2�������Insertion/Removal��g�O�OD V�-�R�I��~�I��܀�����6eO������InsertAtInserts an element  (or all the elements in another array) at a specified index. RemoveAtRemoves an element at a specific index. 6
��O��O) "��2�������OperatorsxC�O-�O5 :���R�G��~�G�ʅ?�������operator []Sets or gets the element at the specified index. �a��O��O1
����������O��O�
Pclass CDumpContextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_008')")>-�O��O(  �,�������class CDumpContext9��O6�O* $����R�����Description�x��OPQ p����������������񾚀������The CDumpContext class supports stream-oriented diagnostic output in the form of human-readable text. You can use afxDump, a predeclared CDumpContext object, for most of your dumping. The afxDump object is available only in the Debug version of the Microsoft Foundation Class Library. Several of the memory diagnostic functions use afxDump for their output. 6�OP-�O:6�OFP) "�"�2�������Preconditions��PP: B�
�2�������������Before you create your own CDumpContext object, you must create a CFile object that serves as the dump destination. Comments'�FP-P? L���2��������������The predefined afxDump object, conceptually similar to the cerr stream, is connected to stderr under MS-DOS. Under the Windows environment, the output is routed to the debugger via the Windows function OutputDebugString. �P�P� Ҁ%�2�����������V�������V�������������������������The CDumpContext class has an overloaded insertion (<<) operator for CObject pointers that dumps the object's data in hexadecimal form. If you need a custom dump format for a derived object, override CObject::Dump. Most Microsoft Foundation classes have a Dump member function defined. Classes that are not derived from CObject, such as CString, CTime, and CTimeSpan, have their own overloaded CDumpContext insertion operators, as do often-used structures such as CFileStatus, CPoint, and CRect. j�-P+Pp ����2�����Uk�������*0��������	�����V������������If you use the IMPLEMENT_DYNAMIC or IMPLEMENT_SERIAL macros in the implementation of your class, then CObject::Dump will print the name of your CObject-derived class. Otherwise, it will print CObject. The CDumpContext class is available with both the Debug and Release versions of the library, but the class Dump functions are defined only in the Debug version. Use #ifdef _DEBUG / #endif statements to bracket your diagnostic code, including your custom Dump member functions. i2�P�P7 >�d�2�������������#define _DEBUG #include <afx.h> See AlsoV+P�P< H�4�2�����������L
������CFile, CObject ]-�PGP0 0�Z�2����������Public MembersConstruction/Destructionr7�P�P; F�n�R����~���D{x���������CDumpContextConstructs a CDumpContext object. 6
GP�P) "��2�������Basic I/O��P�	PR r�_�R�;��~�;�P��������}��c�������30������FlushFlushes any data in the dump context buffer. operator <<Inserts variables and objects into the dump context. HexDumpDumps bytes in hexadecimal format. 3
�P#
P) "��2�������Status�q�	P�
PC V���R�#��~�#�%Pͫ������Ƀ�������GetDepthGets an integer corresponding to the depth of the dump. SetDepthSets the depth of the dump. �l#
PtP1���������tP�P%@PCDumpContext::CDumpContextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDumpContext')")F�
P�P(  �<�������CDumpContext::CDumpContext�OtPBP9 B���r�=���~���������CDumpContext( CFile* pFile )throw( CMemoryException, CFileException );)�PkP& ��2������KBP�P2 4�2�R�=��~Q�=�����ParameterDescription}HkP3
P5 :���R�=��~�=�������pFileA pointer to the CFile object that is the dump destination. 4�Pg
P) "��2�������Remarksb3
P�PN j�)�2���������������������Constructs an object of class CDumpContext. The afxDump object is constructed automatically. The output from afxDump is sent to stderr. Do not write to the underlying CFile while the dump context is active; otherwise you will interfere with the dump. Example(g
P�P% ��0�����(��P%@P] ����0���	�������	��������	������	�����ԏ����	��extern char* pFileName;CFile f;if( !f.Open( pFileName, CFile::modeCreate | CFile::modeWrite ) ) {   afxDump << "Unable to open file" << "\n";   exit( 1 );}C�P%@P�
PDumpContext dc( &f );�e�P�@P1����������@P�@P�BPCDumpContext::FlushEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDumpContext')")?%@P�@P(  �.�������CDumpContext::Flush^+�@PXAP3 6�V�r�=���~�������void Flush()throw( CFileException );)�@P�AP& ��2������4XAP�AP) "��2�������Remarks�j�APLBP- *���2���������Forces any data remaining in buffers to be written to the file attached to the dump context. Example(�APtBP% ��0�����HLBP�BP1 2�.�0���	〴����	��afxDump.Flush();�htBPUCP1���������UCP�CP
FPCDumpContext::GetDepthEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDumpContext')")B�BP�CP(  �4�������CDumpContext::GetDepthEUCP�CP, (�2�r�=���~����int GetDepth() const;)�CPDP& ��2������4�CP9DP) "��2�������RemarksnADP�DP- *���2���������Determines if a deep or shallow dump is in process. Returnsc19DP
EP2 4�b�2�����Ƀ������The depth of the dump as set by SetDepth. 4�DP>EP) "��2�������ExampleW%
EP�EP2 4�J�2�����Ƀ������See the example for SetDepth. 5>EP�EP) "��2�������See Also@�EP
FP0 0� �2����Ƀ�������SetDepth �g�EP�FP1N���������FP�FPLPCDumpContext::HexDumpEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDumpContext')")B
FP�FP) "�2�2�������CDumpContext::HexDump�m�FP�GPK f���r�=���~���������������void HexDump( const char* pszLine, BYTE* pby, int nBytes, int nWidth )throw( CFileException );)�FP�GP& ��2������K�GPHP2 4�2�R�=��~Q�=�����ParameterDescription;��GPKIPH ^���R�=��~�=�����������������pszLineA string to output at the start of a new line. pbyA pointer to a buffer containing the bytes to dump. nBytesThe number of bytes to dump. nWidthMaximum number of bytes dumped per line (not the width of the output line). 4HPIP) "��2�������RemarkstGKIP�IP- *���2���������Dumps an array of bytes formatted as hexadecimal numbers. Example(IPJP% ��0��������IP�JPK d��0���	�ԏ����	��30���	���30���	��char test[] = "This is a test of CDumpContext::HexDump\n";afxDump.HexDump( ".", (BYTE*) test, sizeof test, 20 );I$JP/KP% �H������The output from this program is: '�JPVKP$ ��������/KPLP( ��0���	����. 54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 6F 66 20 43 44. 75 6D 70 43 6F 6E 74 65 78 74 3A 3A 48 65 78 44 75 6D 70 0A. 00�hVKP�LP1����������LP�LP�PCDumpContext::SetDepthEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDumpContext')")BLP�LP(  �4�������CDumpContext::SetDepthW%�LP3MP2 4�J�r�=���~������void SetDepth( int nNewDepth );)�LP\MP& ��2������K3MP�MP2 4�2�R�=��~Q�=�����ParameterDescriptionR#\MP�MP/ .�F�R�=��~�=�����nNewDepthThe new depth value. 4�MP-NP) "��2�������Remarks���MP�P- (��2��������Sets the depth for the dump. If you are dumping primitive types or simple CObjects that contain no pointers to other objects, then a value of 0 is sufficient. A value greater than 0 specifies a deep dump where all objects are dumped recursively. For example, a deep dump of a collection will dump all elements of the collection. You may use other specific depth values in your derived classes. -NP�PLP�^-NP��P+ &���r����������Note:Circular references are not detected in deep dumps and can result in infinite loops. 3�PȀP(  ��������Example'��P�P$ �������`ȀP��PJ d���0���	�Ƀ����	��>�B����	�%Pͫ���	��afxDump.SetDepth( 1 );  // specifies deep dumpASSERT( afxDump.GetDepth() == 1 );4�ṔP(  ��������See AlsoD��P�P/ .�*����V���������CObject::Dump �ḱP��P1�	����������P�PT�PCDumpContext::operator <<EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CDumpContext')")E�P�P(  �:�������CDumpContext::operator <<���P�P� �	�r�=���~�����������������������������������������CDumpContext& operator <<( const CObject* pOb )throw( CFileException );CDumpContext& operator <<( const char FAR* lpsz )throw( CFileException );CDumpContext& operator <<( const void FAR* lp )throw( CFileException );CDumpContext& operator <<( const void NEAR* np )throw( CFileException );CDumpContext& operator <<( BYTE by )throw( CFileException );�Q�PۆP� ‣�r�=���~�����������������������������������������CDumpContext& operator <<( WORD w )throw( CFileException );CDumpContext& operator <<( DWORD dw )throw( CFileException );CDumpContext& operator <<( int n )throw( CFileException );CDumpContext& operator <<( LONG l )throw( CFileException );CDumpContext& operator <<( UINT n )throw( CFileException );)�P�P& ��2������4ۆP8�P) "��2�������Remarks��PR�Pq ��S�2�������������Uk�������*0��������	��V��������Outputs the specified data to the dump context. The insertion operator is overloaded for CObject pointers as well as for most primitive types. A pointer to char results in a dump of string contents; a pointer to void results in a hexadecimal dump of the address only. If you use the IMPLEMENT_DYNAMIC or IMPLEMENT_SERIAL macros in the implementation of your class, then the insertion operator, through CObject::Dump, will print the name of your CObject-derived class. Otherwise, it will print CObject. If you override the Dump function of the class, then you can provide a more meaningful output of the object's contents instead of a hexadecimal dump. 48�P��P) "��2�������Returns}QR�P�P, (���2��������A CDumpContext reference that enables multiple insertions on a single line. 4��P7�P) "��2�������Example(�P_�P% ��0�������7�PT�PD V�c�0���	㌎N
���	��x�
1���	�������extern CObList li;CString s = "test";int i = 7;long lo = 1000000000L;afxDump << "list=" << &li << "string="        << s << "int=" << i << "long=" << lo << "\n";�q_�P��P18
����������PD�PR�Pclass CDWordArray : public CObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")N&T�PD�P(  �L�������class CDWordArray : public CObject9��P}�P* $����R�����Description�wD�PE�PQ p���������������������������The CDWordArray class supports arrays of 32-bit double words. The member functions of CDWordArray are similar to the member functions of class CObArray. Because of this similarity, you can use the CObArray reference documentation for member function specifics. Wherever you see a CObject pointer as a function parameter or return value, substitute a DWORD. '}�Pl�P$ ������W2E�PÏP% �d�0���	��CObject* CObArray::GetAt( int <nIndex> ) const;Cl�P�P% �<������for example, translatesÏP�PT�P to 'ÏP9�P$ ������V1�P��P% �b�0���	��DWORD CWordArray::GetAt( int <nIndex> ) const;�9�P��PO l���������*0������4�����������CDWordArray incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. If an array of double words is stored to an archive, either with the overloaded insertion operator or with the Serialize member function, each element is, in turn, serialized. If you need debug output from individual elements in the array, you must set the depth of the CDumpContext object to 1 or greater. #include <afxcoll.h> ;��P��P) "�$�2�������Public MembersE��P"�P) "�8�2�������Construction/Destruction�q��P��PI b���R����~���e������g�%��������CDWordArrayConstructs an empty array for double words. ~CDWordArrayDestroys a CDWordArray object. 3
"�P�P) "��2�������Bounds���P�PR r�k�R����~���|�������+�M������h�������GetSizeGets the number of elements in this array. GetUpperBoundReturns the largest valid index. SetSizeSets the number of elements to be contained in this array. 7�PM�P) "��2�������Operations���P�PD V��R�U��~�U�U�>`��������U8������FreeExtraFrees all unused memory above the current upper bound. RemoveAllRemoves all the elements from this array. ;M�PL�P) "�$�2�������Element Access��Ph�PR r���R�G��~�G�&�[�������r�ͥ������t9\�������GetAtReturns the value at a given index. SetAtSets the value for a given index; array not allowed to grow. ElementAtReturns a temporary reference to the double word within the array. >L�P��P) "�*�2�������Growing the Array��h�P��PD V�E�R�G��~�G��&�i������΍)&������SetAtGrowSets the value for a given index, growing the array if necessary. AddAdds an element to the end of the array; grows the array if necessary. >��P��P) "�*�2�������Insertion/Removal����P��PD V�-�R�I��~�I��܀�����6eO������InsertAtInserts an element  (or all the elements in another array) at a specified index. RemoveAtRemoves an element at a specific index. 6
��P��P) "��2�������OperatorsxC��PR�P5 :���R�G��~�G�ʅ?�������operator []Sets or gets the element at the specified index. �_��P��P1�����������P�P�Qclass CExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_009')")<R�P�P(  �(�������class CException8��PV�P) "��2�������Description���P�P* "��2�������CException is the base class for all exceptions in the Microsoft Foundation Class Library. The derived classes are listed below: GV�PL�P2 4�*�R�w��}�w�����ClassDescription��P��Pn ��)�R�w��}�w�c�띀�������������hH�S������T�퓀�����f�A������CMemoryExceptionOut-of-memory exception CNotSupportedExceptionRequest for an unsupported operation CArchiveExceptionArchive-specific exceptions CFileExceptionFile-specific exceptions CResourceExceptionWindows resource not found or not creatable 1�L�PQ� ڀW�����t����]52E�����	����3������q�ր����!�R�����$���������These exceptions are intended to be used with the THROW, THROW_LAST, TRY, CATCH, AND_CATCH, and END_CATCH macros. For more information on exception handling, see the section in Chapter 2, "Exception Handling," and for more information on exception processing, see Chapter 5, "Exception Processing," of the Class Libraries Reference. Also see the cookbook in the Class Libraries User's Guide. ��PQR�PO ��P[Q/ .�@����������#include <afx.h> Comments_Q�QJ b�+�������������Uk�������Use the derived classes to catch specific exceptions. Use CException if you need to catch all types of exceptions (and then use CObject::IsKindOf to differentiate among CException-derived classes.) All derived CException classes use the IMPLEMENT_DYNAMIC macro. wO[Q1Q(  ���������CException objects are deleted automatically. Do not delete them yourself. 7�QhQ) "��2�������Derivation*�1Q�Q9 @���2������������Because CException is an abstract base class, you cannot create CException objects; you must create objects of derived classes. If you need to create your own CException type, use one of the derived classes listed above as a model. �ZhQQ1Q��������QUQABQclass CFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_007')")8�QUQ) "��2�������class CFile9Q�Q* $����R�����Description\ UQ�Q< F�A��������������CFile is the base class for Microsoft Foundation file classes. It directly provides unbuffered, binary disk input/output services, and it indirectly supports text files and memory files through its derived classes. CFile works in conjunction with the CArchive class to support serialization of Foundation objects. The hierarchical relationship between this class and its derived classes allows your program to operate on all file objects through the polymorphic CFile interface. A memory file, for example, behaves like a disk file. �q�Q�QG \���������������������Use CFile and its derived classes for general-purpose disk I/O. Use ofstream or other I/O stream classes for formatted text sent to a disk file. Normally, a disk file is opened automatically on CFile construction and closed on destruction. Static member functions permit you to interrogate file status without opening the file. #include <afx.h> See Also[ �Q�Q; F�@����8k����^������CStdioFile, CMemFile Q!�QN	Q0 0�B�2����������Public MembersData MembersvA�Q�	Q5 :���R����A�'G������m_hFileUsually contains the operating-system file handle. EN	Q	
Q) "�8�2�������Construction/Destruction�3�	Q�Qt ��g�R�%��~�%㰄���������9���������z������Ż�A�������%������CFileConstructs a CFile object from a path or file handle. ~CFileDestroys the object, closing the file if it is open. DuplicateConstructs a duplicate object based on this file. OpenSafely opens a file with an error-testing option. CloseCloses a file and deletes the object. 9	
Q�Q) "� �2�������Input/Output��Q
QQ p���R�ӀI���U�A�������j@��������������ReadReads (unbuffered) data from a file at the current file position. WriteWrites (unbuffered) data in a file to the current file position. FlushFlushes any data yet to be written. 5�Q7
Q) "��2�������Position�)
Q�Qn ��S�R�}��~�}�F�A������7�������հ:��������߀������!T������SeekPositions the current file pointer. SeekToBeginPositions the current file pointer at the beginning of the file. SeekToEndPositions the current file pointer at the end of the file. GetLengthObtains the length of the file. SetLengthChanges the length of the file. 47
QQ) "��2�������Locking�g�Q�QC V���R�s��~�s����������"��Ԁ�����LockRangeLocks a range of bytes in a file. UnlockRangeUnlocks a range of bytes in a file. 3
Q�Q) "��2�������Status�f�Q�@QC V���R�O��Q�@Q�Q�~�O�񚤀�����&( ������GetPositionGets the current file pointer. GetStatusObtains the status of this open file. 3
�Q�@Q) "��2�������Staticz�@QABQ` ��5�R�/��~�/�qa������㻡`�������&( ������=�v�������RenameRenames the specified file (static function). RemoveDeletes the specified file (static function). GetStatusObtains the status of the specified file (static, virtual function). SetStatusSets the status of the specified file (static, virtual function). �W�@Q�BQ1 ���������BQCQa�QCFile::CFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")8ABQCQ(  � �������CFile::CFile�w�BQ�CQS v���r�=���~�������������������CFile();CFile( int hFile );CFile( const char* pszFileName, UINT nOpenFlags )throw( CFileException );)CQ�CQ& ��2������K�CQ?DQ2 4�2�R�Y��~Q�Y�����ParameterDescription��CQDFQR r�g�R�Y��~�Y�������������������hFileThe handle of a file that is already open. pszFileNameA string that is the path to the desired file. The path may be relative or absolute. nOpenFlagsSharing and access mode. Specifies the action to take when opening the file. You can combine options listed below by using the bitwise-OR (|) operator. One access permission and one share option are required; the modeCreate and modeNoInherit modes are optional. C?DQ�FQ2 4�"�R����}Q�������ValueMeaning�;DFQ&IQd ��w�R����}��������������������������\僭�����CFile::modeCreateDirects the constructor to create a new file. If the file exists already, it is truncated to 0 length. CFile::modeReadOpens the file for reading only. CFile::modeReadWriteOpens the file for reading and writing. CFile::modeWriteOpens the file for writing only. CFile::modeNoInheritPrevents the file from being inherited by child processes. CFile::shareDenyNoneOpens the file without denying other processes read or write access to the file. Create fails if the file has been opened in compatibility mode by any other process. ���FQLQX ~��R����}������\僭��������\僭���������CFile::shareDenyReadOpens the file and denies other processes read access to the file. Create fails if the file has been opened in compatibility mode or for read access by any other process. CFile::shareDenyWriteOpens the file and denies other processes write access to the file. Create fails if the file has been opened in compatibility mode or for write access by any other process. CFile::shareExclusiveOpens the file with exclusive mode, denying other processes both read and write access to the file. Construction fails if the file has been opened in any other mode for read or write access, even by the current process. ��&IQ�MQ@ N�K�R����}���������������CFile::shareCompatOpens the file with compatibility mode, allowing any process on a given machine to open the file any number of times. Construction fails if the file has been opened with any of the other sharing modes. CFile::typeTextSets text mode with special processing for carriage return--linefeed pairs (used in derived classes only). CFile::typeBinarySets binary mode (used in derived classes only). 4LQNQ) "��2�������Remarks�D�MQ؀Qj ����2����������	����3������Ż�A������������The default constructor does not open a file, but rather sets m_hFile to CFile::hFileNull. Because this constructor does not throw an exception, it does not make sense to use TRY/CATCH logic. Use the Open member function, then test directly for exception conditions. For a discussion of exception processing strategy, see the cookbook in the Class Libraries NQ؀QABQUser's Guide. The constructor with one argument creates a CFile object that corresponds to an existing operating-system file identified by hFile. No check is made on the access mode or file type. ��NQ��Q@ N�#�2�������Ż�A��������The constructor with two arguments creates a CFile object and opens the corresponding operating-system file with the given path. This constructor combines the functions of the first constructor and the Open member function. It throws an exception if there is an error while opening the file. Generally this means that the error is unrecoverable and that the user should be alerted. Example(؀QтQ% ��0��������Qa�Q� ؀�0���	���	���	��������	������	������	���3�����	�T�퓀��	��������!�R���	��char* pFileName = "test.dat";TRY{   CFile f( pFileName, CFile::modeCreate | CFile::modeWrite );}CATCH( CFileException, e ){   #ifdef _DEBUG      afxDump << "File could not be opened " << e->m_cause << "\n";   #endif}END_CATCH�XтQ�Q1<���������Q#�Q.�QCFile::~CFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")9a�Q#�Q(  �"�������CFile::~CFileA�Qd�Q, (�*�r�=���~����virtual ~CFile();)#�Q��Q& ��2������4d�Q��Q) "��2�������Remarksm.��Q.�Q? L�]�2��������������Normally, the destructor closes the operating system file associated with the CFile object. However, if the CFile object was constructed by passing in a handle to an open file using CFile(int), the operating system file will not be closed. You must close the operating system file yourself. �W��Q��Q1�����������Q�Q��QCFile::CloseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")9.�Q�Q) "� �2�������CFile::Closef3��QU�Q3 6�f�r�=���~�������virtual void Close()throw( CFileException );)�Q~�Q& ��2������4U�Q��Q) "��2�������Remarks�p~�Qu�QS t���2����������	������������Closes the file associated with this object and makes the file unavailable for reading or writing. If you have not closed the file before destroying the object, the destructor closes it for you. If you used new to allocate the CFile object on the heap, then you must delete it after closing the file. Close sets m_hFile to CFile::hFileNull. See AlsoC��Q��Q0 0�&�2����Ż�A������CFile::Open �[u�QD�Q1n��������D�Q��Q��QCFile::DuplicateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")=��Q��Q) "�(�2�������CFile::Duplicater?D�Q�Q3 6�~�r�=���~�������virtual CFile* Duplicate() constthrow( CFileException );)��Q�Q& ��2������4�QP�Q) "��2�������Remarks�z�Q�Q9 B���2�������������Constructs a duplicate CFile object for a given file. This is equivalent to the C run-time function dup. Example(P�Q+�Q% ��0������I�Q��QJ d���0���	������	�������	���z���	��extern CFile* cfile1;CFile* cfile2 = cfile1->Duplicate();�W+�QF�Q1"��������F�Q~�Q\�QCFile::FlushEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")8��Q~�Q(  � �������CFile::Flushf3F�Q�Q3 6�f�r�=���~�������virtual void Flush()throw( CFileException );)~�Q
�Q& ��2������4�QA�Q) "��2�������Remarks�
�Q\�Q@ N���2�����〴����������Forces any data remaining in the file buffer to be written to the file. The use of Flush does not guarantee flushing of A�Q\�Q��QCArchive buffers. If you are using an archive, call CArchive::Flush first. �[A�Q��Q1Z����������Q%�QN�QCFile::GetLengthEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")=\�Q%�Q) "�(�2�������CFile::GetLengthq>��Q��Q3 6�|�r�=���~�������virtual DWORD GetLength() constthrow( CFileException );)%�Q��Q& ��2������4��Q��Q) "��2�������Remarks�a��Qz�Q& ���2������Obtains the current logical length of the file in bytes, not the amount physically allocated. 9��Q��Q) "� �2�������Return ValueS&z�Q�Q- *�L�2���������The length of the file. See AlsoH��QN�Q0 0�0�2�����!T������CFile::SetLength W&�Q��Q1�����������Q��Q��QCFile::GetPositionDisableButton("up")?N�Q��Q) "�,�2�������CFile::GetPositions@��QW�Q3 6���r�=���~�������virtual DWORD GetPosition() constthrow( CFileException );)��Q��Q& ��2������4W�Q��Q) "��2�������Remarks�o��Q\�Q9 B���2�����F�A��������Obtains the current value of the file pointer, which can be used in subsequent calls to Seek. ReturnsS-��Q��Q& �Z�2������The file pointer as a 32-bit double word. 4\�Q��Q) "��2�������Example(��Q�Q% ��0������F��Q��Q> L���0���	������	��񚤀��	��extern CFile cfile;DWORD dwPosition = cfile.GetPosition();�[�Q�Q1x
���������QW�QzRCFile::GetStatusEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")<��QW�Q(  �(�������CFile::GetStatus���Q&�QF Z��r�=���~�������������virtual BOOL GetStatus( CFileStatus& rStatus ) const;static BOOL GetStatus( const char* pszFileName, CFileStatus& rStatus );)W�QO�Q& ��2������K&�Q��Q2 4�2�R�Y��~Q�Y�����ParameterDescription��O�Qy�Q< F�G�R�Y��~�Y���������rStatusA reference to a user-supplied CFileStatus structure that will receive the status information. The CFileStatus structure has the following fields: C��Q��Q2 4�"�R����|Q�������FieldMeaning �y�Q��Qj ��m�R����|���������������������������������CTime m_ctimeThe date and time the file was created CTime m_mtimeThe date and time the file was last modified CTime m_atimeThe date and time the file was last accessed for reading LONG m_sizeThe logical size in bytes of the file, as reported by the MS-DOS command dir BYTE m_attributeThe MS-DOS attribute byte of the file char m_szFullName[_MAX_PATH]The absolute filename (_MAX_PATH is defined in stdlib.h) ����Q��Q0 .��R�Y��~�Y�����pszFileNameA string that is the path to the desired file. The path may be relative or absolute, but may not contain a network name. 4��Q��Q) "��2�������Remarks�a��Qw�QM h���2��������������������The virtual version of GetStatus retrieves the status of the open file associated with this CFile object. It does not insert a value into the m_szFullName structure member. The static version gets the status of the named file and copies the filename to m_szFullName. This function obtains the file status from the directory entry without actually opening the file. It is useful for testing the existence and access rights of a file. The m_attribute is the MS-DOS file attribute. The Microsoft Foundation classes provide an enum type attribute so that you can specify attributes symbolically: (��Q��Q% ��0�������w�QlR. *�'�0���	����������enum Attribute {normal =    0x00,readOnly =  0x0��QlR��Q1,hidden =    0x02,system =    0x04,volume =    0x08,directory = 0x10,archive =   0x20};3��Q�R(  ��������Returns�{lRTR: D���������������TRUE if no error, in which case rStatus is valid; otherwise FALSE. FALSE indicates that the file does not exist. 3�R�R(  ��������Example'TR�R$ ��������R�Rc ��W�0���	�������	��&( ���	�������������	�&( ���	������CFileStatus status;extern CFile cfile;if( cfile.GetStatus( status ) )    // virtual member function  {      #ifdef _DEBUG         afxDump << "File size = " << status.m_size << "\n";      #endif  }char* pFileName = "test.dat";if( CFile::GetStatus( pFileName, status ) )   // static function   {      #ifdef _DEBUG         afxDump << "Full file name = " << status.m_szFullName << "\n";      #endif,�R�R% ��0���	��   }4�RR(  ��������See Also^#�RzR; F�F����=�v�����T�������CFile::SetStatus, CTime �[RR18�������� RBRIRCFile::LockRangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")<zRBR(  �(�������CFile::LockRange�WR�R? N���r�=���~�����������virtual void LockRange( DWORD dwPos, DWORD dwCount )throw( CFileException );)BRR& ��2������K�RLR2 4�2�R�=��~Q�=�����ParameterDescription�wR�R7 >���R�=��~�=���������dwPosThe byte offset of the start of the byte range to lock. dwCountThe number of bytes in the range to lock. 4LR.R) "��2�������RemarksY�R�	R: B�?�2������"��Ԁ������Locks a range of bytes in an open file, throwing an exception if the file is already locked. Locking bytes in a file prevents access to those bytes by other processes. You can lock more than one region of a file, but no overlapping regions are allowed. When you unlock the region, using the UnlockRange member function, the byte range must correspond exactly to the region that was previously locked. The LockRange function does not merge adjacent regions; if two locked regions are adjacent, you must unlock each region separately. ��.RL
R' �=�2������Under MS-DOS, you must enable file sharing by running SHARE.EXE before running an application using this member function. You can do this in AUTOEXEC.BAT. {J�	R�
R1 2���r������������Note:This function is not available for the CMemFile-derived class. 3L
R�
R(  ��������Example'�
R!R$ �������k�
R�R@ P���0���	��������	��������	��extern DWORD dwPos;extern DWORD dwCount;extern CFile cfile;cfile.LockRange( dwPos, dwCount );4!RR(  ��������See AlsoI�RIR/ .�4����"��Ԁ�����CFile::UnlockRange �VR�R1;	��������!�R
R�ERCFile::OpenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")7IR
R(  ��������CFile::Open�g�R�
R> L���r�=���~����������virtual BOOL Open( const char* pszFileName, UINT nOpenFlags, CFileException* pError = NULL );)
R�
R& ��2������K�
R R2 4�2�R�Y��~Q�Y�����ParameterDescriptionP��
R|@R\ ����R�Y��~�Y���������������㰄�����pszFileNameA string that is the path to the desired file. The path may be relative or absolute, but may not contain a network name. nOpenFlagsA UINT that defines the file's sharing and access mode. It specifies the action to take when opening the file. You can combine options by using the bitwise-OR (|) operator. One access permission and one share option are required; the  R|@RIRmodeCreate and modeNoInherit modes are optional. See the CFile constructor for a list of mode options. �v R!AR/ .���R�Y��~�Y�����pErrorA pointer to an existing file-exception object that indicates the completion status of the open operation. 4|@RUAR) "��2�������Remarks�D!AR�BRC T���2����������������Open is designed for use with the default CFile constructor. The two functions form a "safe" method for opening a file where a failure is a normal, expected condition. The constructor is guaranteed to succeed, and Open returns (a pointer to) an exception object, bypassing the THROW/TRY/CATCH mechanism. Returns�zUAR�CR; F���2�������������TRUE if the open was successful; otherwise FALSE. The pError parameter is only meaningful if FALSE is returned. 4�BR�CR) "��2�������Example(�CR�CR% ��0�����[�CRHER[ ���0��������	��T�퓀��	��������	������	�������CFile f;CFileException e;char* pFileName = "test.dat";if( !f.Open( pFileName, CFile::modeCreate | CFile::modeWrite, &e ) )   {      #ifdef _DEBUG         afxDump << "File could not be opened " << e.m_cause << "\n";      #endif   }4�CR|ER(  ��������See Alsoa&HER�ER; F�L���㰄�����%������CFile::CFile, CFile::Close �V|ERdFR1���������"dFR�FR�KRCFile::ReadEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")7�ER�FR(  ��������CFile::Read�TdFR.GR? N���r�=���~�����������virtual UINT Read( void FAR* lpBuf, UINT nCount )throw( CFileException );)�FRWGR& ��2������K.GR�GR2 4�2�R�=��~Q�=�����ParameterDescription,�WGR�HR8 >���R�=��~�=���������lpBufPointer to the user-supplied buffer that is to receive the data read from the file. nCountThe maximum number of bytes to be read from the file. For text-mode files, carriage return-linefeed pairs are counted as single characters. 4�GRIR) "��2�������Remarks�X�HR�IR3 6���2�����������Reads data into a buffer from the file associated with the CFile object. ReturnsX2IR�IR& �d�2������The number of bytes transferred to the buffer. �m�IR�JR7 >���r��������������Note:For all CFile classes, the return value may be less than nCount if the end of file was reached. 3�IR�JR(  ��������Example'�JR�JR$ �������Y�JR{KR? N���0���	������	���"�)���	��extern CFile cfile;char pbuf[100];UINT nBytesRead = cfile.Read( pbuf, 100 );4�JR�KR(  ��������See AlsoC{KR�KR/ .�(�����j@������CFile::Write �X�KR{LR17��������#{LR�LR��RCFile::RemoveEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")9�KR�LR(  �"�������CFile::Remove�N{LR;MR9 B���r�=���~���������static void Remove( const char* pszFileName )throw( CFileException );)�LRdMR& ��2������K;MR�MR2 4�2�R�Y��~Q�Y�����ParameterDescription��dMRhNR0 .��R�Y��~�Y�����pszFileNameA string that is the path to the desired file. The path may be relative or absolute, but may not contain a network name. 4�MR�NR) "��2�������RemarksGhNR�R; D��2��������������This static function deletes the file specified by the path. It will not remove a directory. The Remove member function throws an exception if the connected file is open or if the file cannot be removed. This is equivalent to the MS-DOS del command. Example�NR�R�KR(�NR4�R% ��0�����[��R��Ry ����0���	���	���	��������	㻡`����	���3�����	�T�퓀��	��������!�R���	��char* pFileName = "test.dat";TRY{    CFile::Remove( pFileName );}CATCH( CFileException, e ){  #ifdef _DEBUG     afxDump << "File " << pFileName << " cannot be removed\n";  #endif}END_CATCH�X4�R�R1s��������$�RQ�R��RCFile::RenameEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")9��RQ�R(  �"�������CFile::Rename�g�R��R? N���r�=���~�����������static void Rename( const char* pszOldName, const char* pszNewName )throw( CFileException );)Q�R �R& ��2������K��Rk�R2 4�2�R�g��~Q�g�����ParameterDescriptionp9 �RۃR7 >�r�R�g��~�g���������pszOldNameThe old path. pszNewNameThe new path. 4k�R�R) "��2�������Remarks��ۃRЄR4 6��2�����������This static function renames the specified file. Directories cannot be renamed. This is equivalent to the MS-DOS ren command. Example(�R��R% ��0������ ЄR��R{ ĀA�0���	����	���	��������	�qa����	���3�����	�T�퓀��	���������!�R���	��extern char* pOldName;extern char* pNewName;TRY{    CFile::Rename( pOldName, pNewName );}CATCH( CFileException, e ){   #ifdef _DEBUG      afxDump << "File " << pOldName << " not found, cause = "             << e->m_cause << "\n";   #endif}END_CATCH�V��R�R12��������%�RQ�RR�RCFile::SeekEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")7��RQ�R(  ��������CFile::Seek�M�R݇R? N���r�=���~�����������virtual LONG Seek( LONG lOff, UINT nFrom )throw( CFileException );)Q�R�R& ��2������K݇RQ�R2 4�2�R�=��~Q�=�����ParameterDescription�l�R�R7 >���R�=��~�=���������lOffNumber of bytes to move the pointer. nFromPointer movement mode. Must be one of the following: CQ�R7�R2 4�"�R����~Q�������ValueMeaning^�R��RR r��R����~���������������������CFile::beginMove the file pointer lOff bytes forward from the beginning of the file. CFile::currentMove the file pointer lOff bytes from the current position in the file. CFile::endMove the file pointer backward lOff bytes from the end of the file. 47�RɊR) "��2�������Remarks�N��RL�R5 8���2������������Repositions the pointer in a previously opened file. The Seek function permits random access to a file's contents by moving the pointer a specified amount, absolutely or relatively. No data is actually read during the seek. When a file is opened, the file pointer is positioned at offset 0, the beginning of the file. Returns��ɊR<�R3 4�{�2����������If the requested position is legal, Seek returns the new byte offset from the beginning of the file. Otherwise, the return value is undefined, and a CFileException object is thrown. 4L�Rp�R) "��2�������Example(<�R��R% ��0������op�RR�RK f���0���	������	���F�A���	������	��extern CFile cfile;LONG lOffset = 1000, lActual;lActual = cfile.Seek( lOffset, CFile::begin );�]��R��R1���������&��R�RG�RCFile::SeekToBeginEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")>R�R�R(  �,�������CFile::SeekToBegind1��R��R3 6�b�r�=���~�������void SeekToBegin()throw( CFileException );)�R��R& ��2������4��RߏR) "��2�������Remarks����R��R: B��2��ߏR��RR�R�����������Sets the value of the file pointer to the beginning of the file. SeekToBegin() is equivalent to Seek(0L, CFile::begin). Example(ߏR��R% ��0�����q3��RG�R> L�f�0���	������	��7����	��extern CFile cfile;cfile.SeekToBegin();�[��R��R1���������'��R�Rz�RCFile::SeekToEndEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")<G�R�R(  �(�������CFile::SeekToEndc0��Rr�R3 6�`�r�=���~�������DWORD SeekToEnd()throw( CFileException );)�R��R& ��2������4r�R��R) "��2�������Remarks����R��R: B��2�������������Sets the value of the file pointer to the logical end of the file. SeekToEnd() is equivalent to  CFile::Seek(0L, CFile::end). ReturnsJ$��R��R& �H�2������The length of the file in bytes. 4��R�R) "��2�������Example(��R>�R% ��0������B�R��R> L���0���	������	��հ:���	��extern CFile cfile;DWORD dwActual = cfile.SeekToEnd();4>�R��R(  ��������See Also�A��Rz�RG ^��������߀���F�A����7�������CFile::GetLength, CFile::Seek, CFile::SeekToBegin �[��R�R1��������(�RB�R�RCFile::SetLengthEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")<z�RB�R(  �(�������CFile::SetLength�O�R��R9 B���r�=���~���������virtual void SetLength( const DWORD dwNewLen )throw( CFileException );)B�R��R& ��2������K��R>�R2 4�2�R�=��~Q�=�����ParameterDescription����R �R0 .�e�R�=��~�=�����dwNewLenDesired length of the file in bytes. This value may be larger or smaller than the current length of the file. The file will be extended or truncated as appropriate. 4>�RT�R) "��2�������RemarksI# �R��R& �F�2������Changes the length of the file. �QT�R%�R7 >���r��������������Note:With CMemFile, this function could throw a CMemoryException object. 3��RX�R(  ��������Example'%�R�R$ �������YX�R�R? N���0���	������	����!T���	��extern CFile cfile;DWORD dwNewLength = 10000;cfile.SetLength( dwNewLength );�[�R��R1���������)��R��R�SCFile::SetStatusEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")<�R��R(  �(�������CFile::SetStatus�n��R��R? N���r�=���~�����������static void SetStatus( const char* pszFileName, const CFileStatus& status )throw( CFileException );)��R��R& ��2������K��R�R2 4�2�R�Y��~Q�Y�����ParameterDescription���R�R\ ��w�R�Y��~�Y��������&( ������&( �������pszFileNameA string that is the path to the desired file. The path may be relative or absolute, but may not contain a network name. statusThe buffer containing the new status information. Call GetStatus to prefill the CFileStatus structure with current values, then make changes as required. If a value is 0, then the corresponding status item is not updated. See GetStatus for a description of the CFileStatus structure. 4�RK�R) "��2�������Remarks�@�R��RI `���2��������������������Sets the status of the file associated with this file location. Under MS-DOS, all times in the CFileStatus structure contain the same value. To set the time, modify the m_mtime field of status. The SetStatus function will throw an exception under MS-DOS if the file's read-only attribute is set. Example(K�RS% ��0�������RS�R*���R6S[ ����0���	���������	�&( ���	��������	�=�v����	��char* pFileName = "test.dat";extern BYTE newAttribute;CFileStatus status;CFile::GetStatus( pFileName, status );status.m_attribute = newAttribute;CFile::SetStatus( pFileName, status );4SjS(  ��������See AlsoG6S�S/ .�0����&( ������CFile::GetStatus �]jS?S1��������*?S}SgSCFile::UnlockRangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")>�S}S(  �,�������CFile::UnlockRange�Y?SS? N���r�=���~�����������virtual void UnlockRange( DWORD dwPos, DWORD dwCount )throw( CFileException );)}S>S& ��2������KS�S2 4�2�R�=��~Q�=�����ParameterDescription�{>S;S7 >���R�=��~�=���������dwPosThe byte offset of the start of the byte range to unlock. dwCountThe number of bytes in the range to unlock. 4�SoS) "��2�������Remarks��;SjS: B���2����������������Unlocks a range of bytes in an open file. See the description of LockRange for details. Under MS-DOS, you must load SHARE.EXE; otherwise, the function throws a CFileException object. {JoS�S1 2���r������������Note:This function is not available for the CMemFile-derived class. 3jSS(  ��������Example'�S?S$ �������mS�S@ P���0���	��������	��"��Ԁ��	��extern DWORD dwPos;extern DWORD dwCount;extern CFile cfile;cfile.UnlockRange( dwPos, dwCount );4?S S(  ��������See AlsoG�SgS/ .�0�������������CFile::LockRange �W S�S1���������+�S'S�SCFile::WriteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')")8gS'S(  � �������CFile::Write�[�S�S? N���r�=���~�����������virtual void Write( const void FAR* lpBuf, UINT nCount )throw( CFileException );)'S�S& ��2������K�S5	S2 4�2�R�=��~Q�=�����ParameterDescription1��Sf
S8 >���R�=��~�=���������lpBufA pointer to the user-supplied buffer that contains the data to be written to the file. nCountThe number of bytes to be transferred from the buffer. For text-mode files, carriage return-linefeed pairs are counted as single characters. 45	S�
S) "��2�������Remarks��f
S�SA P�y�2��������/{��������Writes data from a buffer to the file associated with the CFile object. Write throws an exception in response to several conditions, including the disk-full condition. Example(�
S�S% ��0������H�SFS? N���0���	������	���/{���	��extern CFile cfile;char pbuf[100];cfile.Write( pbuf, 100 );4�SzS(  ��������See Alsok0FS�S; F�`����U�A����~��b������CFile::Read, CStdioFile::WriteString �YzSo
S1���������,o
S�
S@SCFile::m_hFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFile')"):�S�
S(  �$�������CFile::m_hFile4
o
S�
S* $����R�����Syntax:�
SS(  �$�������UINT m_hFile; 4�
SKS) "��2�������Remarks�yS@S: B���2�������������Contains the operating-system file handle for an open file. It contains CFile::m_hFileNull (an operating-system-independent empty file indicator) if the handle has not been assigned. Usage of m_hFile is not recommended because the member's meaning depends on the derived class. m_hFile is made a public member to conveniently support nonpolymorphic use of the class. KS@S�S�cKS�@S1;��������-�@S�@S�HSclass CFileExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_009')")A@S�@S) "�0�2�������class CFileException9�@SAS* $����R�����Description���@S�BS@ N�1����������������A CFileException object represents a file-related exception condition. The CFileException class includes public data members that hold the portable cause code and the operating-system-specific error number. The class also provides static member functions for throwing file exceptions and for returning cause codes for both operating-system errors and C run-time errors. #include <afx.h> See Also�RAS�DS\ ��������������$�������������3�������CFile, Chapter 5, "Exception Processing" CommentsCFileException objects are constructed and thrown in CFile member functions and in member functions of derived classes. You can access these objects within the scope of a CATCH expression. For portability, use only the cause code to get the reason for an exception. ;�BS�DS) "�$�2�������Public Members9�DSES) "� �2�������Data Members���DS�ESD V��R�M��~�M�M�j����d��������m_causeContains portable code corresponding to the exception cause. m_lOsErrorContains the related operating-system error number. EES,FS) "�8�2�������Construction/Destructionv;�ES�FS; F�v�R���{~����|����������CFileExceptionConstructs a CFileException object. <,FS�FS) "�&�2�������Code Conversion���FS�GSD V�Q�R�
�~�
�<,_�������:�zȀ�����OsErrorToExceptionReturns a cause code corresponding to an MS-DOS error code. ErrnoToExceptionReturns cause code corresponding to a run-time error number. =�FSHS) "�(�2�������Helper Functions���GS�HSD V�A�R����~���:Y�������㴳�Z������ThrowOsErrorThrows a file exception based on an operating-system error number. ThrowErrnoThrows a file exception based on a run-time error number. �rHS�IS1���������.�IS�ISgOSCFileException::CFileExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFileException')")J"�HS�IS(  �D�������CFileException::CFileException�O�IS_JS8 @���r�=���~��������CFileException( int cause = CFileException::none, LONG lOsError = -1 );)�IS�JS& ��2������K_JS�JS2 4�2�R�=��~Q�=�����ParameterDescription}-�JSPLSP n�[�R�=��~�=����M�jр������������causeAn enumerated type variable that indicates the reason for the exception. See CFileException::m_cause for a list of the possible values. lOsErrorAn operating-system-specific reason for the exception, if available. The lOsError parameter provides more information than cause does. 4�JS�LS) "��2�������Remarks�PLS�MS: B���2��������\[,U�����Constructs a CFileException object that stores the cause code and the operating-system code in the object. Do not use this constructor directly, but rather call the global function AfxThrowFileException. S	�LS�NSJ b��r��������������������Note:The variable lOsError applies only to CFile and CStdioFile objects. The CMemFile class does not handle this error code. More information specifically about the operating system is available through the run-time function _dosexterr (MS-DOS only). 4�MSOS(  ��������See AlsoL�NSgOS/ .�:����\[,U������AfxThrowFileException �tOS�S1��������/�Sd�SE�SCFileException::ErrnoToExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFileEgOS�SgOSxception')")L$gOSd�S(  �H�������CFileException::ErrnoToExceptionb0�SƀS2 4�`�r�=���~������static int ErrnoToException( int nErrno );)d�S�S& ��2������KƀS:�S2 4�2�R�=��~Q�=�����ParameterDescription�T�SÁS5 :���R�=��~�=�������nErrnoAn integer error code as defined in the run-time include file errno.h. 4:�S��S) "��2�������Remarks�ÁS�S@ N���2�������M�jр�������This static function converts a given run-time library error value to a CFileException enumerated error value. See CFileException::m_cause for a list of the possible enumerated values. ReturnstN��Sw�S& ���2������Enumerated value that corresponds to a given run-time library error value. 4�S��S) "��2�������Example(w�SӃS% ��0���������S��SX ~��0���	��>�B����	�T�퓀��	�:�zȀ��	��T�퓀��	��#include <errno.h>ASSERT( CFileException::ErrnoToException( EACCES ) ==                  CFileException::accessDenied );4ӃS�S(  ��������See AlsoY*��SE�S/ .�T����<,_�������CFileException::OsErrorToException �v�S�S1���������0�S:�SŊSCFileException::OsErrorToExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFileException')")N&E�S:�S(  �L�������CFileException::OsErrorToExceptiong5�S��S2 4�j�r�=���~������static int OsErrorToException( LONG lOsError );):�SʆS& ��2������K��S�S2 4�2�R�=��~Q�=�����ParameterDescriptione6ʆSz�S/ .�l�R�=��~�=�����lOsErrorAn operating-system-specific error code. 4�S��S) "��2�������Remarks��z�S��S: B�s�2�������������This static function returns an enumerator that corresponds to a given lOsError value. If the error code is unknown, then the function returns CFileException::generic. ReturnstN��S�S& ���2������Enumerated value that corresponds to a given operating-system error value. 4��SI�S) "��2�������Example(�Sq�S% ��0������vI�S:�SS v���0���>�B����	�T�퓀��	�<,_����	��T�퓀��	��ASSERT( CFileException::OsErrorToException( 5 ) ==                  CFileException::accessDenied );4q�Sn�S(  ��������See AlsoW(:�SŊS/ .�P����:�zȀ�����CFileException::ErrnoToException �nn�Sd�S1���������1d�S��SA�SCFileException::ThrowErrnoEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFileException')")FŊS��S(  �<�������CFileException::ThrowErrno]+d�S�S2 4�V�r�=���~������static void ThrowErrno( int nErrno );)��S0�S& ��2������K�S{�S2 4�2�R�=��~Q�=�����ParameterDescription�T0�S�S5 :���R�=��~�=�������nErrnoAn integer error code as defined in the run-time include file errno.h. 4{�S8�S) "��2�������Remarks���S��S: B��2�������������This static function constructs a CFileException object corresponding to a given nErrno value, then throws the exception. Example(8�S%�S% ��0������W��S��S> L���0���	��T�퓀��	㴳�Z���	��#include <errno.h>CFileException::ThrowErrno( EACCES );  // "access denied"4%�S�S(  ��������See AlsoS$��SA�S/ .�H����:Y��������CFileException::ThrowOsError �p�S�S1���������2�ST�S��SCFileException::ThrowOsErrorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFileException')")A�S�SA�SH A�ST�S(  �@�������CFileException::ThrowOsErrorb0�S��S2 4�`�r�=���~������static void ThrowOsError( LONG lOsError );)T�S��S& ��2������K��S*�S2 4�2�R�=��~Q�=�����ParameterDescriptione6��S��S/ .�l�R�=��~�=�����lOsErrorAn operating-system-specific error code. 4*�S��S) "��2�������Remarks���S��S@ N���2���������������This static function throws a CFileException corresponding to a given lOsError value. If the error code is unknown, then the function throws an exception coded as CFileException::generic. Example(��S��S% ��0�����z@��St�S: D���0���T�퓀��	�:Y�����	��CFileException::ThrowOsError( 5 );  // "access denied"4��S��S(  ��������See AlsoQ"t�S��S/ .�D���㴳�Z������CFileException::ThrowErrno �k��S��S1,	��������3��S��S��SCFileException::m_causeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFileException')")C��S��S(  �6�������CFileException::m_cause4
��S�S* $����R�����Syntax9��SE�S(  �"�������int m_cause; 4�Sy�S) "��2�������Remarks�WE�S��S, (���2��������Contains values defined by a CFileException enumerated type. The enumerators are: Cy�S?�S2 4�"�R�Q��|Q�Q�����ValueMeaning,���Sk�S` ����R�Q��|�Q�����������������������������CFileException::noneNo error occurred. CFileException::genericAn unspecified error occurred. CFileException::fileNotFoundThe file could not be located. CFileException::badPathAll or part of the path is invalid. CFileException::tooManyOpenFilesThe permitted number of open files was exceeded. CFileException::accessDeniedThe file could not be accessed. CFileException::invalidFileThere was an attempt to use an invalid file handle. /�?�S��SX ~���R�Q��|�Q�������������������������CFileException::removeCurrentDirCurrent working directory cannot be removed. CFileException::directoryFullThere are no more directory entries. CFileException::badSeekThere was an error trying to set the file pointer. CFileException::hardIOThere was a hardware error. CFileException::sharingViolationSHARE.EXE was not loaded, or shared region was locked. CFileException::lockViolationThere was an attempt to lock a region that was already locked. �ik�S:�S7 >���R�Q��|�Q���������CFileException::diskFullThe disk is full. CFileException::endOfFileThe end of file was reached. �o��S��S6 <���R�������������Note:These CFileException cause enumerators are distinct from the CArchiveException cause enumerators. 3:�S�S(  ��������Example'��S9�S$ �������
�S��S� ��0���	���	���	��������	������	������	���3�����	�T�퓀��	���T�퓀��	�����!�R���	��extern char* pFileName;TRY{   CFile f( pFileName, CFile::modeCreate | CFile::modeWrite );}CATCH( CFileException, e){    if( e->m_cause == CFileException::fileNotFound )        printf( "ERROR: File not found\n");}END_CATCH�n9�Sr�S1���������4r�S��STCFileException::m_lOsErrorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CFileException')")F��S��S(  �<�������CFileException::m_lOsError4
r�S��S* $����R�����Syntax=��S)�S(  �*�������LONG m_lOsError; 4��S]�S) "��2�������Remarks��)�ST' ��2������Contains the operating-system error code for this exception. See your operating-system technical manual for a listing of er]�ST��Sror codes. �a]�S�T1���������5�T�Tp
Tclass CMapPtrToPtrEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")?T�T) "�,�2�������class CMapPtrToPtr9�T#T* $����R�����Description�'�T�Tu ��O���������������4�������������������The CMapPtrToPtr class supports maps of void pointers keyed by void pointers. The member functions of CMapPtrToPtr are similar to the member functions of class CMapStringToOb. Because of this similarity, you can use the CMapStringToOb reference documentation for member function specifics. Wherever you see a CObject pointer as a function parameter or return value, substitute a pointer to void. Wherever you see a CString or a const pointer to char as a function parameter or return value, substitute a pointer to void. '#T�T$ ������vO�T\T' ���0���	����BOOL CMapStringToOb::Lookup( const char* <key>,CObject*& <rValue> ) const;C�T�T% �<������for example, translates to '\T�T$ ������hC�T.T% ���0���	��BOOL CMapPtrToPtr::Lookup( void* <key>, void*& <rValue> ) const;	��T7TI `��������Uk���������������CMapPtrToPtr incorporates the IMPLEMENT_DYNAMIC macro to support run-time type access and dumping to a CDumpContext object. If you need a dump of individual map elements (pointer values), you must set the depth of the dump context to 1 or greater. Pointer-to-pointer maps may not be serialized. When a CMapPtrToPtr object is deleted, or when its elements are removed, only the pointers are removed, not the entities they reference. A.TxT(  �2�������#include <afxcoll.h> ;7T�T) "�$�2�������Public MembersExT�T) "�8�2�������Construction/Destruction���T�TV z��R����~���l��&����������\��Ԁ�������CMapPtrToPtrConstructs a collection that maps void pointers to void pointers. ~CMapPtrToPtrDestroys a CMapPtrToPtr object. 7�T	T) "��2�������OperationsG��TZT� ڀ��R���i~���N
#-�������������������A�����EW<��������������ń�������LookupLooks up a void pointer, based on the void pointer key. The pointer value is used for the key comparison, not the entity it points to. SetAtInserts an element into the map; replaces an existing element if a matching key is found. operator []Inserts an element into the map--operator substitution for SetAt. RemoveKeyRemoves an element specified by a key. RemoveAllRemoves all the elements from this map. �y	TTC V���R���i~���5-��������pE�����GetStartPositionReturns the position of the first element. GetNextAssocGets the next element for iterating. 3
ZTIT) "��2�������Status�yT
TC V���R���~��
 '��������K������GetCountReturns the number of elements in this map. IsEmptyTests for the empty-map condition (no elements). kFITp
T% ��������Specifies the memory-allocation granularity for extending the map. �b
TT1���������6TBTUJTclass CMapPtrToWordEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")?p
TBT(  �.�������class CMapPtrToWord9T{T* $����R�����Description�BTATo ��3�������������4�������������������The CMapPtrToWord class supports maps of 16-bit words keyed by void pointers. The member functions of CMapPtrToWord are similar to the member functions of class CMapStringToOb. Because of this similarity, you can use the CMapStringToOb reference documentation for {TATp
Tmember function specifics. Wherever you see a CObject pointer as a function parameter or return value, substitute WORD. Wherever you see a CString or a const pointer to char as a function parameter or return value, substitute a pointer to void. '{T6AT$ ������tNAT�AT& ���0���	���BOOL CMapStringToOb::Lookup( const char* <key>,CObject*& <rValue> ) const;C6AT�AT% �<������for example, translates to '�ATBT$ ������nI�AT�BT% ���0���	��BOOL CMapPtrToWord::Lookup( const void* <key>, WORD& <rValue> ) const;�BT�DTC T��������Uk�������������CMapWordToPtr incorporates the IMPLEMENT_DYNAMIC macro to support run-time type access and dumping to a CDumpContext object. If you need a dump of individual map elements, you must set the depth of the dump context to 1 or greater. Pointer-to-word maps may not be serialized. When a CMapPtrToWord object is deleted, or when its elements are removed, the pointers and the words are removed. The entities referenced by the key pointers are not removed. A�BT�DT(  �2�������#include <afxcoll.h> ;�DTET) "�$�2�������Public MembersE�DTWET) "�8�2�������Construction/Destruction��ET5FTP n��R���k~���l��&��������\��Ԁ�������CMapPtrToWordConstructs a collection that maps void pointers to 16-bit words. ~CMapPtrToWordDestroys a CMapPtrToWord object. 7WETlFT) "��2�������Operations>�5FT�HT� ڀq�R���i~���N
#-�������������������A�����EW<��������������ń�������LookupReturns a WORD, using a void pointer as a key. The pointer value is used for the key comparison, not the entity it points to. SetAtInserts an element into the map; replaces an existing element if a matching key is found. operator []Inserts an element into the map--operator substitution for SetAt. RemoveKeyRemoves an element specified by a key. RemoveAllRemoves all the elements from this map. �ylFTfITC V���R���i~���5-��������pE�����GetStartPositionReturns the position of the first element. GetNextAssocGets the next element for iterating. 3
�HT�IT) "��2�������Status�yfITUJTC V���R���~��
 '��������K������GetCountReturns the number of elements in this map. IsEmptyTests for the empty-map condition (no elements). �c�IT�JT1�
��������7�JT)KT݈Tclass CMapStringToObEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")@UJT)KT(  �0�������class CMapStringToOb9�JTbKT* $����R�����Description�w)KT-NTT v������������������������CMapStringToOb is a dictionary collection class that maps unique CString objects to CObject pointers. Once you have inserted a CString-CObject* pair (element) into the map, you can efficiently retrieve or delete the pair using a string or a CString value as a key. You can also iterate over all the elements in the map. A variable of type POSITION is used for alternate entry access in all map variations. You can use a POSITION to "remember" an entry and to iterate through the map. You might think that this iteration is sequential by key value; it is not. The sequence of retrieved elements is indeterminate. �bKTP�TN j���������*0������4����������CMapStringToOb incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. If a map is stored to an archive, either with the overloaded insertion operator or with the Serialize member function, each element is, in turn, serialized. If you need a diagnostic dump of the individual elements in the map (the CString value and the CObject conte-NTP�TUJTnts), you must set the depth of the dump context to 1 or greater. A�-NT��TL f����������������������When a CMapStringToOb object is deleted, or when its elements are removed, the CString objects and the CObject pointers are removed. The objects referenced by the CObject pointers are not destroyed. #include <afxcoll.h> See Also�{P�Tw�Tk ������㲼������������kڀ��㾓�����S������$7�������CMapPtrToPtr, CMapPtrToWord, CMapStringToPtr, CMapStringToString, CMapWordToOb, dbCMapWordToPtr 7��T��T) "��2�������Derivation��w�T��T- (�{�2��������Map class derivation is similar to list derivation. See the tutorial in the Microsoft Class Library User's Guide for an illustration of the derivation of a special-purpose list class. ;��TӃT) "�$�2�������Public MembersE��T�T) "�8�2�������Construction/Destruction��ӃT�TV z�1�R�́O~���l��&����������\��Ԁ�������CMapStringToObConstructs a collection that maps CString values to CObject pointers. ~CMapStringToObDestroys a CMapStringToOb object. 7�T=�T) "��2�������OperationsD��T��T� ��a�R���i~���N
#-�������������������A�����EW<��������������ń�������5-��������LookupReturns a CObject pointer, based on a CString value. SetAtInserts an element into the map; replaces an existing element if a matching key is found. operator []Inserts an element into the map--operator substitution for SetAt. RemoveKeyRemoves an element specified by a key. RemoveAllRemoves all the elements from this map. GetStartPositionReturns the position of the first element. m8=�T�T5 :�p�R���i~���pE�����GetNextAssocGets the next element for iterating. 3
��T!�T) "��2�������Status�y�T݈TC V���R���~��
 '��������K������GetCountReturns the number of elements in this map. IsEmptyTests for the empty-map condition (no elements). �r!�T��T1\��������8��TʉT��TCMapStringToOb::CMapStringToObEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMapStringToOb')")J"݈TʉT(  �D�������CMapStringToOb::CMapStringToOb^,��T(�T2 4�X�r�=���~������CMapStringToOb( int nBlockSize = 10 );)ʉTQ�T& ��2������K(�T��T2 4�2�R�=��~Q�=�����ParameterDescription�RQ�T�T/ .���R�=��~�=�����nBlockSizeSpecifies the memory-allocation granularity for extending the map. 4��TQ�T) "��2�������Remarks���T�T@ N�
�2���������������Constructs an empty CString-to-CObject* map. As the map grows, memory is allocated in units of nBlockSize entries. Example�_Q�T��T8 @���2�����đ����	���See CObList::CObList for a listing of the CAge class used in all collection examples. (�T֌T% ��0��������T��TJ b���0����4���	����4���	��4���	���CMapStringToOb map(20);  // Map on the stack with blocksize of 20CMapStringToOb* pm = new CMapStringToOb;  // Map on the heap                                              // with default blocksize�s֌T��T1���������9��T�TU�TCMapStringToOb::~CMapStringToObEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMapStringToOb')")K#��T�T(  �F�������CMapStringToOb::~CMapStringToObB��T&�T, (�,�r�=���~����~CMapStringToOb();)�TO�T& ��2������4&�T��T) "��2�������Remarks��O�TU�T9 @��2������������Destroys a CMapStringToOb object, including all CString key obj��TU�T��Tects contained in the map, but does not destroy the CObject objects. �l��T��T1���������:��T7�T��TCMapStringToOb::GetCountEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMapStringToOb')")EU�T7�T) "�8�2�������CMapStringToOb::GetCountE��T|�T, (�2�r�=���~����int GetCount() const;)7�T��T& ��2������3|�T��T(  ��������ReturnsL'��T$�T% �N������The number of elements in this map. 3��TW�T(  ��������Example'$�T~�T$ ��������W�Tu�Tc ��)�0����4���	���EW<���	��EW<���	��>�B����	����ŀ��	��CMapStringToOb map;map.SetAt( "Bart", new CAge( 13 ) );map.SetAt( "Homer", new CAge( 36 ) );ASSERT( map.GetCount() == 2 );4~�T��T(  ��������See AlsoNu�T��T/ .�>������K������CMapStringToOb::IsEmpty �p��T��T1���������;��T��T��TCMapStringToOb::GetNextAssocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMapStringToOb')")H ��T��T(  �@�������CMapStringToOb::GetNextAssoc�^��T|�T> L���r�=���~����������void GetNextAssoc( POSITION& rNextPosition, CString& rKey, CObject*& rValue ) const;)��T��T& ��2������K|�T��T2 4�2�R�U��~Q�U�����ParameterDescription!��To�T^ ��C�R�U��~�U��������5-�����������������rNextPositionSpecifies a reference to a POSITION value returned by a previous GetNextAssoc or GetStartPosition call. rKeySpecifies the returned key of the retrieved element (a string). rValueSpecifies the returned value of the retrieved element (a CObject pointer). 4��T��T) "��2�������Remarks��o�T|�TG \�%�2������������������Retrieves the map element at rNextPosition, then updates rNextPosition to refer to the next element in the map. This function is most useful for iterating through all the elements in the map. Note that the position sequence is not necessarily the same as the key value sequence. If the retrieved element is the last in the map, then the new value of rNextPosition is set to NULL. Example(��T��T% ��0������|�T��T� ��0����4���	���x�
1���	����EW<���	��EW<���	��EW<���	��EW<���	���5-�����	���pE��	��CMapStringToOb map;POSITION pos;CString key;CAge* pa;map.SetAt( "Bart", new CAge( 13 ) );map.SetAt( "Lisa", new CAge( 11 ) );map.SetAt( "Homer", new CAge( 36 ) );map.SetAt( "Marge", new CAge( 35 ) );// Iterate through the entire map, dumping both name and agefor( pos = map.GetStartPosition(); pos != NULL; ){    map.GetNextAssoc( pos, key, pa );)��T��T% ��0���	��}V1��T:�T% �b������The results from this program are as follows: '��Ta�T$ �������l:�T��T(  ���0���	�����Lisa : a CAge at $4724 11Marge : a CAge at $47A8 35Homer : a CAge at $4766 36Bart : a CAge at $45D4 134a�T)�T(  ��������See AlsoW(��T��T/ .�P����5-��������CMapStringToOb::GetStartPosition �t)�T%�T1���������<%�Tq�T�UCMapStringToOb::GetStartPositionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMapStringToOb')")L$��Tq�T(  �H�������CMapStringToOb::GetStartPositionR&%�T��T, (�L�r�=���~����POSITION GetStartPosition() const;)q�T��T& ��2������4��T �T) "��2�������Remarks$���TPU@ N���2�������pE�������Starts a map iteration by returning a POSITION value that can be passed to a GetNextAssoc call. The iteration sequence is not predictable; therefore the  �TPU��T"first element in the map" has no special significance. Exampleh6 �T�U2 4�l�2�����pE����See the example for the function GetNextAssoc. �kPUTU1K��������=TU�U�UCMapStringToOb::IsEmptyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMapStringToOb')")D�U�U) "�6�2�������CMapStringToOb::IsEmptyETU�U, (�2�r�=���~����BOOL IsEmpty() const;)�UU& ��2������3�U9U(  ��������Returnsl>U�U. ,�|���������TRUE if this map contains no elements; otherwise FALSE. 39U�U(  ��������ExampleW&�U/U1 2�L�����ń������See the example for RemoveAll. 4�UcU(  ��������See AlsoO /U�U/ .�@����
 '������CMapStringToOb::GetCount �jcUMU1���������>MU�U@
UCMapStringToOb::LookupEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMapStringToOb')")B�U�U(  �4�������CMapStringToOb::Lookupw?MUU8 @�~�r�=���~��������BOOL Lookup( const char* key, CObject*& rValue ) const;)�U/U& ��2������KUzU2 4�2�R�=��~Q�=�����ParameterDescription��/UCU8 >�#�R�=��~�=���������keySpecifies the string key that identifies the element to be looked up. rValueSpecifies the returned value from the looked-up element. 4zUwU) "��2�������Remarks��CU/U7 <��2������������Lookup uses a hashing algorithm to quickly find the map element with a key that matches exactly (CString value). Returnse6wU�U/ .�l�2���������TRUE if the element was found; otherwise FALSE. 4/U�U) "��2�������Example(�U�U% ��0������?�U�	U� ��0����4���	����EW<���	��EW<���	��EW<���	��EW<���	��>�B����	�N
#-���	��>�B����	��CMapStringToOb map;CAge* pa;map.SetAt( "Bart", new CAge( 13 ) );map.SetAt( "Lisa", new CAge( 11 ) );map.SetAt( "Homer", new CAge( 36 ) );map.SetAt( "Marge", new CAge( 35 ) );ASSERT( map.Lookup( "Lisa", pa ) ); // Is "Lisa" in the map?ASSERT( *pa ==  CAge( 11 ) ); // Is she 11?4�U�	U(  ��������See AlsoR#�	U@
U/ .�F�����A������CMapStringToOb::operator [] �m�	U�
U1���������?�
U#U�@UCMapStringToOb::RemoveAllEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMapStringToOb')")E@
U#U(  �:�������CMapStringToOb::RemoveAllA�
UdU, (�*�r�=���~����void RemoveAll();)#U�U& ��2������4dU�U) "��2�������Remarks�S�Ua
UM h���2���������b�o�����������Removes all the elements from this map and destroys the CString key objects. The CObject objects referenced by each key are not destroyed. The RemoveAll function can cause memory leaks if you do not ensure that the referenced CObject objects are destroyed. The function works correctly if the map is already empty. Example(�U�
U% ��0�����-ya
U�U� 6���0���	���4���	�����EW<���	��EW<���	��>�B����	����ŀ��	��b�o���	��L
���	��>�B����	����ŀ��	��>�B����	�S9����	��{    CMapStringToOb map;    CAge age1( 13 ); // Two objects on the stack    CAge age2( 36 );    map.SetAt( "Bart", &age1 );    map.SetAt( "Homer", &age2 );    ASSERT( map.GetCount() == 2 );    map.RemoveAll(); // CObject pointers removed; objects not removed    ASSERT( map.GetCount() == 0 );    ASSERT( map.IsEmpty() );gB�
U)@U% ���0���	��} // The two CAge objects are delete�U)@U@
Ud when they go out of scope4�U]@U(  ��������See AlsoP!)@U�@U/ .�B�������������CMapStringToOb::RemoveKey �m]@UKAU1���������@KAU�AU�GUCMapStringToOb::RemoveKeyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMapStringToOb')")E�@U�AU(  �:�������CMapStringToOb::RemoveKeyZ(KAU�AU2 4�P�r�=���~������BOOL RemoveKey( const char* key );)�AUBU& ��2������K�AU^BU2 4�2�R�=��~Q�=�����ParameterDescriptiona2BU�BU/ .�d�R�=��~�=�����keySpecifies the string used for map lookup. 4^BU�BU) "��2�������Remarks���BU�CU4 6���2�����������Looks up the map entry corresponding to the supplied key; then, if the key is found, removes the entry. This can cause memory leaks if the CObject object is not deleted elsewhere. Returns|M�BUfDU/ .���2���������TRUE if the entry was found and successfully removed; otherwise FALSE. 4�CU�DU) "��2�������Example(fDU�DU% ��0�����u�DU7FUq ��	�0����4���	���EW<���	��EW<���	��EW<���	��EW<���	��������	��CMapStringToOb map;map.SetAt( "Bart", new CAge( 13 ) );map.SetAt( "Lisa", new CAge( 11 ) );map.SetAt( "Homer", new CAge( 36 ) );map.SetAt( "Marge", new CAge( 35 ) );map.RemoveKey( "Lisa" ); // memory leak: age object not deletedV1�DU�FU% �b������The results from this program are as follows: '7FU�FU$ ���������FUiGU)  ��0���	�����RemoveKey example: A CMapStringToOb with 3 elements[Marge] = a CAge at $49A0 35[Homer] = a CAge at $495E 36[Bart] = a CAge at $4634 134�FU�GU(  ��������See AlsoP!iGU�GU/ .�B���������CMapStringToOb::RemoveAll �i�GU�HU1J��������A�HU�HU�UCMapStringToOb::SetAtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMapStringToOb')")A�GU�HU(  �2�������CMapStringToOb::SetAt�U�HU\IU? N���r�=���~�����������void SetAt( const char* key, CObject* newValue )throw( CMemoryException );)�HU�IU& ��2������K\IU�IU2 4�2�R�=��~Q�=�����ParameterDescription���IU�JU> J�'�R�=��~�=�����������keySpecifies the string that is the key of the new element. newValueSpecifies the CObject pointer that is the value of the new element. 4�IU�JU) "��2�������Remarks���JU�KU. *���2���������The primary means to insert an element in a map. First, the key is looked up. If the key is found, then the corresponding value is changed; otherwise, a new key-value element is created. Example(�JU�KU% ��0������M�KU�MUh ����0����4���	����EW<���	��EW<���	��N
#-���	���EW<���	����CMapStringToOb map;CAge* pa;map.SetAt( "Bart", new CAge( 13 ) );map.SetAt( "Lisa", new CAge( 11 ) ); // Map contains 2 elementsif( map.Lookup( "Lisa", pa ) ){ // CAge 12 pointer replaces CAge 11 pointer    map.SetAt( "Lisa", new CAge( 12 ) );    delete pa;  // Must delete CAge 11 to avoid memory leak}V1�KU�MU% �b������The results from this program are as follows: '�MU%NU$ ��������MU3OU+ $���0���	�������before Lisa's birthday: A CMapStringToOb with 2 elements[Lisa] = a CAge at $493C 11[Bart] = a CAge at $4654 13after Lisa's birthday: A CMapStringToOb with 2 elements[Lisa] = a CAge at $49C0 12[Bart] = a CAge at $4654 134%NUgOU(  ��������See Alsoz?3OU�U; F�~����N
#-�����A������CMapStringToOb::Lookup, CMapStringToOb::operator [] gOU�U�GU�ogOU��U1`��������B��U�U"�UCMapStringToOb::operator []EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMapStringToOb')")G�U�U(  �>�������CMapStringToOb::operator []a/��UT�U2 4�^�r�=���~������CObject*& operator []( const char* key );)�U}�U& ��2������4T�U��U) "��2�������Remarks�}�U��UG \��2�����EW<�����N
#-��������This operator is a convenient substitute for the SetAt member function. Thus it can be used only on the left side of an assignment statement (an l-value). If there is no map element with the specified key, then a new element is created. There is no "right side" (r-value) equivalent to this operator because there is a possibility that a key may not be found in the map. Use the Lookup member function for element retrieval. Example(��U߃U% ��0������V��Uf�U1 2���0����4���	�����CMapStringToOb map;map["Bart"] = new CAge( 13 );map["Lisa"] = new CAge( 11 );V1߃U��U% �b������The results from this program are as follows: 'f�U�U$ �������p��Uz�U' ���0���	����Operator [] example: A CMapStringToOb with 2 elements[Lisa] = a CAge at $4A02 11[Bart] = a CAge at $497E 134�U��U(  ��������See Alsot9z�U"�U; F�r����������N
#-������CMapStringToOb::SetAt, CMapStringToOb::Lookup �d��U��U1���������C��U��U�Uclass CMapStringToPtrEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")A"�U��U(  �2�������class CMapStringToPtr9��U1�U* $����R�����Description���U8�U] ��U���������������4�����������The CMapStringToPtr class supports maps of void pointers keyed by CString objects. The member functions of CMapStringToPtr are similar to the member functions of class CMapStringToOb. Because of this similarity, you can use the CMapStringToOb reference documentation for member function specifics. Wherever you see a CObject pointer as a function parameter or return value, substitute a pointer to void. '1�U_�U$ ������tN8�UӉU& ���0���	���BOOL CMapStringToOb::Lookup( const char* <key>,CObject*& <rValue> ) const;C_�U�U% �<������for example, translates to 'ӉU=�U$ ������qL�U��U% ���0���	��BOOL CMapStringToPtr::Lookup( const char* <key>, void*& <rValue> ) const;�=�U��UP n�������Uk������������������CMapStringToPtr incorporates the IMPLEMENT_DYNAMIC macro to support run-time type access and dumping to a CDumpContext object. If you need a dump of individual map elements, you must set the depth of the dump context to 1 or greater. String-to-pointer maps may not be serialized. When a CMapStringToPtr object is deleted, or when its elements are removed, the CString key objects and the words are removed. #include <afxcoll.h> ;��U��U) "�$�2�������Public MembersE��U=�U) "�8�2�������Construction/Destruction����U,�UV z�3�R�ρM~���l��&����������\��Ԁ�������CMapStringToPtrConstructs a collection that maps CString objects to void pointers. ~CMapStringToPtrDestroys a CMapStringToPtr object. 7=�Uc�U) "��2�������OperationsA�,�U��U� ��[�R���i~���N
#-�������������������A�����EW<��������������ń�������5-��������LookupReturns a void pointer, based on a CString value. SetAtInserts an element into the map; replaces an existing element if a matching key is found. operator []Inserts an element into the map--operator substitution for SetAt. RemoveKeyc�U��U"�URemoves an element specified by a key. RemoveAllRemoves all the elements from this map. GetStartPositionReturns the position of the first element. m8c�U�U5 :�p�R���i~���pE�����GetNextAssocGets the next element for iterating. 3
��UP�U) "��2�������Status�y�U�UC V���R���~��
 '��������K������GetCountReturns the number of elements in this map. IsEmptyTests for the empty-map condition (no elements). �gP�U��U1v��������D��U��U-�Uclass CMapStringToStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")D�U��U(  �8�������class CMapStringToString9��U!�U* $����R�����Description�"��U��Ui ��E���������������4���������������The CMapStringToString class supports maps of CString objects keyed by CString objects. The member functions of CMapStringToString are similar to the member functions of class CMapStringToOb. Because of this similarity, you can use the CMapStringToOb reference documentation for member function specifics. Wherever you see a CObject pointer as a return value or "output" function parameter, substitute a pointer to char. Wherever you see a CObject pointer as an "input" function parameter, substitute a pointer to char. '!�U��U$ ������tN��UG�U& ���0���	���BOOL CMapStringToOb::Lookup( const char* <key>,CObject*& <rValue> ) const;C��U��U% �<������for example, translates to 'G�U��U$ ������wQ��U(�U& ���0���	���BOOL CMapStringToString::Lookup( const char* <key>,CString& <rValue> ) const;u��U��U[ ��5�������*0������4���������������CMapStringToString incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. If a map is stored to an archive, either with the overloaded insertion operator or with the Serialize member function, each element is, in turn, serialized. If you need a dump of individual CString-CString elements, you must set the depth of the dump context to 1 or greater. When a CMapStringToString object is deleted, or when its elements are removed, the CString objects are removed as appropriate. A(�U��U(  �2�������#include <afxcoll.h> ;��U�U) "�$�2�������Public MembersE��U^�U) "�8�2�������Construction/Destruction���UX�UV z�I�R�
�~�
�l��&����������\��Ԁ�������CMapStringToStringConstructs a collection that maps CString objects to CString objects. ~CMapStringToStringDestroys a CMapStringToString object. 7^�U��U) "��2�������OperationsB�X�U��U� ��]�R���i~���N
#-�������������������A�����EW<��������������ń�������5-��������LookupReturns a CString, using a CString value as a key. SetAtInserts an element into the map; replaces an existing element if a matching key is found. operator []Inserts an element into the map--operator substitution for SetAt. RemoveKeyRemoves an element specified by a key. RemoveAllRemoves all the elements from this map. GetStartPositionReturns the position of the first element. m8��U>�U5 :�p�R���i~���pE�����GetNextAssocGets the next element for iterating. 3
��Uq�U) "��2�������Status�y>�U-�UC V���R���~��
 '��������K������GetCountReturns the number of elements in this map. IsEmptyTests for the empty-map condition (no elements). �aq�U��U1���������E��UV�Vclass CMapWordToObEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")>-�UV(  �,�������class CMapWordToOb��UV-�U9��UEV* $����R�����Description�VTVc ��Y�������������4���������������The CMapWordToOb class supports maps of CObject pointers keyed by 16-bit words. The member functions of CMapWordToOb are similar to the member functions of class CMapStringToOb. Because of this similarity, you can use the CMapStringToOb reference documentation for member function specifics. Wherever you see a CString or a const pointer to char as a function parameter or return value, substitute WORD. 'EV{V$ ������tNTV�V& ���0���	���BOOL CMapStringToOb::Lookup( const char* <key>,CObject*& <rValue> ) const;C{V2V% �<������for example, translates to '�VYV$ ������jE2V�V% ���0���	��BOOL CMapWordToOb::Lookup( WORD <key>, CObject*& <rValue> ) const;fYV)V[ ���������*0������4���������������CMapWordToOb incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. If a map is stored to an archive, either with the overloaded insertion operator or with the Serialize member function, each element is, in turn, serialized. If you need a dump of individual WORD-CObject elements, you must set the depth of the dump context to 1 or greater. When a CMapWordToOb object is deleted, or when its elements are removed, the CObject objects are deleted as appropriate. A�VjV(  �2�������#include <afxcoll.h> ;)V�V) "�$�2�������Public MembersEjV�V) "�8�2�������Construction/Destruction���V�VP n��R���m~���l��&��������\��Ԁ�������CMapWordToObConstructs a collection that maps words to CObject pointers. ~CMapWordToObDestroys a CMapWordToOb object. 7�V�V) "��2�������Operations?��V7
V� �c�R���i~���N
#-�����������������A�����EW<�������������������5-��������LookupReturns a CObject pointer, using a word value as a key. SetAtInserts an element into the map; replaces an existing element if a matching key is found. operator []Inserts an element into the map--operator substitution for SetAt. RemoveKeyRemoves an element specified by a key. RemoveAllRemoves all the elements from this map. GetStartPositionReturns the position of the first element. m8�V�
V5 :�p�R���i~���pE�����GetNextAssocGets the next element for iterating. 3
7
V�
V) "��2�������Status�y�
V�VC V���R���~��
 '��������K������GetCountReturns the number of elements in this map. IsEmptyTests for the empty-map condition (no elements). �b�
V&V1��������F&VeVHVclass CMapWordToPtrEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")?�VeV(  �.�������class CMapWordToPtr9&V�V* $����R�����Description�eV&Vo ��3�������������4�������������������The CMapWordToPtr class supports maps of void pointers keyed by 16-bit words. The member functions of CMapWordToPtr are similar to the member functions of class CMapStringToOb. Because of this similarity, you can use the CMapStringToOb reference documentation for member function specifics. Wherever you see a CObject pointer as a function parameter or return value, substitute a pointer to void. Wherever you see a CString or a const pointer to char as a function parameter or return value, substitute WORD. '�VMV$ ������tN&V�V& ���0���	���BOOL CMapStringToOb::Lookup( const char* <key>,CObject*& <rValue> ) const;CMV@V% �<������for example, translates t�V@V�Vo '�V7@V$ ������hC@V�@V% ���0���	��BOOL CMapWordToPtr::Lookup( WORD <key>, void*& <rValue> ) const;�7@V�BVC T��������Uk�������������CMapWordToPtr incorporates the IMPLEMENT_DYNAMIC macro to support run-time type access and dumping to a CDumpContext object. If you need a dump of individual map elements, you must set the depth of the dump context to 1 or greater. Word-to-pointer maps may not be serialized. When a CMapWordToPtr object is deleted, or when its elements are removed, the words and the pointers are removed. The entities referenced by the pointers are not removed. A�@V�BV(  �2�������#include <afxcoll.h> ;�BV+CV) "�$�2�������Public MembersE�BVpCV) "�8�2�������Construction/Destruction��+CVGDVP n��R���k~���l��&��������\��Ԁ�������CMapWordToPtrConstructs a collection that maps words to void pointers. ~CMapWordToPtrDestroys a CMapWordToPtr object. 7pCV~DV) "��2�������Operations<�GDV�FV� �]�R���i~���N
#-�����������������A�����EW<��������������ń�������5-��������LookupReturns a void pointer, using a word value as a key. SetAtInserts an element into the map; replaces an existing element if a matching key is found. operator []Inserts an element into the map--operator substitution for SetAt. RemoveKeyRemoves an element specified by a key. RemoveAllRemoves all the elements from this map. GetStartPositionReturns the position of the first element. m8~DV'GV5 :�p�R���i~���pE�����GetNextAssocGets the next element for iterating. 3
�FVZGV) "��2�������Status�y'GVHVC V���R���~��
 '��������K������GetCountReturns the number of elements in this map. IsEmptyTests for the empty-map condition (no elements). �]ZGV�HV11��������G�HV�HV�Vclass CMemFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_007')"):HV�HV(  �$�������class CMemFile9�HVIV* $����R�����Description��HVKV0 .������������CMemFile is the CFile-derived class that supports in-memory files. These in-memory files behave like binary disk files except that bytes are stored in RAM. An in-memory file is a useful means of transferring raw bytes or serialized objects between independent processes. Contiguous memory is automatically allocated in specified increments, and it is deleted when the object is destroyed. You can access this memory through a pointer supplied by a member function. O IVnKV/ .�@����������#include <afx.h> CommentsxGKV�KV1 2������������The following CFile functions are not implemented for CMemFile: QnKV7LV> L�(�R��2�h��"�����z�����Duplicate Q�KV�LV> L�(�R��2�h��"�����������LockRange S7LV�LV> L�,�R��2�h��"���"��Ԁ����UnlockRange ���LV�MV9 @�E�������������If you call these functions on a CMemFile object, you will get a CNotSupportedException. The data member CFile::m_hFile is not used and has no meaning. 7�LV�MV) "��2�������Derivation�m�MV�OV3 4���2����������If you derive a class from CMemFile, you must use the protected memory-allocation functions listed above, overriding them as necessary. If you need global memory access from the Windows medium model, for example, derive a class with the four protected functions overridden. Your replacement functions should call the Windows GlobalAlloc family of functions. ;�MV�OV) "�$�2�������Public MembersE�OV�V) "�8�2�������Construction/D�OV�VHVestruction���OV�VD V��R�7��~�7�H�k������� �P������CMemFileConstructs a memory file using internally allocated memory. ~CMemFileCloses the memory file, freeing allocated memory. �`�Vz�V1���������Hz�V��V^�VCMemFile::CMemFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMemFile')")>�V��V(  �,�������CMemFile::CMemFile�Vz�VG�V9 B���r�=���~���������CMemFile( UINT nGrowBytes = 1024 )throw ( CFileException, CMemoryException );)��Vp�V& ��2������KG�V��V2 4�2�R�=��~Q�=�����ParameterDescriptionh9p�V#�V/ .�r�R�=��~�=�����nGrowBytesThe memory-allocation increment in bytes. 4��VW�V) "��2�������Remarks|O#�VӃV- *���2���������This constructor allocates memory and opens an empty memory file. Example(W�V��V% ��0�����c5ӃV^�V. ,�j�0���^���	��CMemFile f; // ready to use - no Open necessary�a��V��V1`��������I��V/�V^�VCMemFile::~CMemFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMemFile')")?^�V/�V(  �.�������CMemFile::~CMemFileD��Vs�V, (�0�r�=���~����virtual ~CMemFile();)/�V��V& ��2������4s�VЅV) "��2�������Remarks�h��V^�V& ���2������This destructor frees all allocated memory associated with this memory file, effectively closing it. �eЅV�V1���������J�V7�V��Vclass CMemoryExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_009')")C^�V7�V) "�4�2�������class CMemoryException9�Vp�V* $����R�����Description�J7�V��V? L�����������������A CMemoryException object represents an out-of-memory exception condition. No further qualification is necessary or possible. Memory exceptions are thrown automatically by new. If you write your own memory functions, using malloc, for example, then you are responsible for throwing memory exceptions. #include <afx.h> ;p�V4�V) "�$�2�������Public Membersz?��V��V; F�~�R��3~����x碀�������CMemoryExceptionConstructs a CMemoryException object. �x4�VW�V1���������KW�V��V3�VCMemoryException::CMemoryExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CMemoryException')")N&��V��V(  �L�������CMemoryException::CMemoryExceptionCW�V�V, (�.�r�=���~����CMemoryException();)��V�V& ��2������4�VE�V) "��2�������Remarksg'�V��V@ N�O�2�������+<:\��������Constructs a CMemoryException object. Do not use this constructor directly, but rather call the global function AfxThrowMemoryException. This global function can succeed in an out-of-memory situation because it constructs the exception object in previously allocated memory. See Also�HE�V3�V? N���2������$����+<:\������Chapter 5, "Exception Processing,", AfxThrowMemoryException �k��VύV1��������LύV�V�Vclass CNotSupportedExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_009')")I 3�V�V) "�@�2�������class CNotSupportedException9ύVQ�V* $����R�����Description���VD�V3 4�������������A CNotSupportedException object represents an exception that is the result of a request for an unsupported feature. No further qualification is necessary or possible. #include <afx.h> ;Q�V�V) "�$�2�������Public Members�KD�V�V; F���R�w��}�w������������CNotSupportedExceptionConstructs a CNotSupportedException objec�V�V3�Vt. ���V��V1=��������M��V&�V2�VCNotSupportedException::CNotSupportedExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CNotSupportedException')")Z2�V&�V(  �d�������CNotSupportedException::CNotSupportedExceptionI��Vo�V, (�:�r�=���~����CNotSupportedException();)&�V��V& ��2������4o�V��V) "��2�������Remarks����V��VA P�U�2��������9���������Constructs a CNotSupportedException object. Do not use this constructor directly, but rather call the global function AfxThrowNotSupportedException. See Also{?��V2�V< H�~�2�����$����9�������Exception Processing, AfxThrowNotSupportedException �]��V��V1���������N��V��V"Wclass CObArrayEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')");2�V��V) "�$�2�������class CObArray9��V4�V* $����R�����Description���V7�VF Z�{������������������The CObArray class supports arrays of CObject pointers. These object arrays are similar to C arrays, but they can dynamically shrink and grow as necessary. Array indexes always start at position 0. You can decide whether to fix the upper bound or allow the array to expand when you add elements past the current bound. Memory is allocated contiguously to the upper bound, even if some elements are null. The elements of a CObArray object must fit in one 64K segment together with approximately 100 allocation overhead bytes. If CObject pointers are 16-bit near pointers (as they are in the small and medium memory models), then an array size limit is about 32,000 elements, but because there is only one data segment, the objects themselves will probably exhaust memory before the array does. If CObject pointers are 32-bit far pointers (as they are in the compact and large memory models), then an array size limit is about 16,000 elements. �4�VT�VW |�������������*0��������4�������As with a C array, the access time for a CObArray indexed element is constant and is independent of the array size. CObArray incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. If an array of CObject pointers is stored to an archive, either with the overloaded insertion operator or with the Serialize member function, each CObject element is, in turn, serialized along with its array index. �=7�V��VM h�{���������������������If you need a dump of individual CObject elements in an array, you must set the depth of the CDumpContext object to 1 or greater. When a CObArray object is deleted, or when its elements are removed, only the CObject pointers are removed, not the objects they reference. #include <afxcoll.h> See Also�TT�V��V_ ��������(ŀ���
l����vT�u���〥�f����&Ikŀ�����CStringArray, CPtrArray, CByteArray, CWordArray, CDWordArray 7��V��V) "��2�������Derivation����V��V- (�]�2��������Array class derivation is similar to list derivation. For details on the derivation of a special-purpose list class, see the tutorial in the Class Library User's Guide. ����Vb�V8 >��r����������*0�����Note:You must use the IMPLEMENT_SERIAL macro in the implementation of your derived class if you intend to serialize the array. ;��V��V) "�$�2�������Public MembersEb�V��V) "�8�2�������Construction/Destruction�n��V��VO n���R�I��~�I�e��������g�%��������CObArrayConstructs an empty array for CObject pointers. ~CObArrayDestroys a CObArray object. 3
��V��V) "��2�������Bounds���V�WR r�k�R����~���|����V�W2�V�����+�M������h�������GetSizeGets the number of elements in this array. GetUpperBoundReturns the largest valid index. SetSizeSets the number of elements to be contained in this array. 7��VW) "��2�������Operations���W�WD V��R�U��~�U�U�>`��������U8������FreeExtraFrees all unused memory above the current upper bound. RemoveAllRemoves all the elements from this array. ;WW) "�$�2�������Element Access ��W;WR r���R�G��~�G�&�[�������r�ͥ������t9\�������GetAtReturns the value at a given index. SetAtSets the value for a given index; array not allowed to grow. ElementAtReturns a temporary reference to the element pointer within the array. >WyW) "�*�2�������Growing the Array��;W]WD V�A�R�G��~�G��&�i������΍)&������SetAtGrowSets the value for a given index; grows the array if necessary. AddAdds an element to the end of the array; grows the array if necessary. >yW�W) "�*�2�������Insertion/Removal��]WtWD V�+�R�I��~�I��܀�����6eO������InsertAtInserts an element (or all the elements in another array) at a specified index. RemoveAtRemoves an element at a specific index. 6
�W�W) "��2�������OperatorsxCtW"W5 :���R�G��~�G�ʅ?�������operator []Sets or gets the element at the specified index. �[�W�W1<��������O�W�W�WCObArray::AddEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")9"W�W(  �"�������CObArray::AddzA�WaW9 B���r�=���~���������int Add( CObject* newElement )throw( CMemoryException );)�W�W& ��2������KaW�W2 4�2�R�A��~Q�A�����ParameterDescriptionu@�WJW5 :���R�A��~�A�������newElementThe CObject pointer to be added to this array. 4�W~W) "��2�������Remarks*�JW�	W@ N���2�����h�����������Adds a new element to the end of an array, growing the array by 1. If SetSize has been used with an nGrowBy value greater than 1, then extra memory may be allocated. However the upper bound will increase by only 1. ReturnsI#~W�	W& �F�2������The index of the added element. 4�	W%
W) "��2�������Example(�	WM
W% ��0������r%
WWI b���0����������	���΍)&���	��΍)&���	��CObArray array;array.Add( new CAge( 21 ) ); // Element 0array.Add( new CAge( 40 ) ); // Element 1V1M
W^W% �b������The results from this program are as follows: 'W�W$ �������\^WW' ���0���	����Add example: A CObArray with 2 elements[0] = a CAge at $442A 21[1] = a CAge at $4468 404�W<W(  ��������See Also�cW�WS v������r�ͥ�����&�i�����܀���ʅ?�������CObArray::SetAt, CObArray::SetAtGrow, CObArray::InsertAt, CObArray::operator [] �`<W�
W1y��������P�
W�
W�@WCObArray::CObArrayEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")>�W�
W(  �,�������CObArray::CObArray;�
W�
W, (��r�=���~����CObArray();)�
W%W& ��2������4�
WYW) "��2�������Remarks�a%W�W3 6���2�����������Constructs an empty CObject pointer array. The array grows one element at a time. Example�dYW�W2 4���2�������	���See the CObList constructor for a listing of the CAge class used in all collection examples. (�W�W% ��0������l�Wk@WH `���0����������	����������	��������	��CObArray �Wk@W�Warray;  // Array on the stackCObArray* parray = new CObArray;  // Array on the heap4�W�@W(  ��������See AlsoGk@W�@W/ .�0����đ������CObList::CObList �a�@WxAW1i��������QxAW�AW�BWCObArray::~CObArrayEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")?�@W�AW(  �.�������CObArray::~CObArray<xAW�AW, (� �r�=���~����~CObArray();)�AWBW& ��2������4�AWPBW) "��2�������Remarks�mBW�BW2 4���2����������Destroys a CObArray object but does not destroy the CObject objects that are referenced in the array. �aPBW�CW1 ��������R�CW�CW�GWCObArray::ElementAtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")@�BW�CW) "�.�2�������CObArray::ElementAtZ(�CWDW2 4�P�r�=���~������CObject*& ElementAt( int nIndex );)�CWDDW& ��2������KDW�DW2 4�2�R�=��~Q�=�����ParameterDescription�lDDW0EW5 :���R�=��~�=�������nIndexAn integer index that is greater than or equal to 0 and less than or equal to GetUpperBound(). 4�DWdEW) "��2�������Remarks��0EWFW' �!�2������Returns a temporary reference to the element pointer within the array. It is used to implement the left-side assignment operator for arrays. �edEW�FW+ &���r����������Note:This is an advanced function that should be used only to implement special array operators. 3FW�FW(  ��������ReturnsR'�FW0GW+ &�N��������A reference to a CObject pointer. 4�FWdGW(  ��������See AlsoL0GW�GW/ .�:����ʅ?�������CObArray::operator [] �adGWBHW1���������SBHW�HW�IWCObArray::FreeExtraEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")?�GW�HW(  �.�������CObArray::FreeExtraABHW�HW, (�*�r�=���~����void FreeExtra();)�HW�HW& ��2������4�HWIW) "��2�������Remarks���HW�IW' ��2������Frees any extra memory that was allocated while the array was grown. This function has no effect on the size or upper bound of the array. �]IWaJW1���������TaJW�JWSOWCObArray::GetAtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")<�IW�JW) "�&�2�������CObArray::GetAt[)aJW�JW2 4�R�r�=���~������CObject* GetAt( int nIndex ) const;)�JW!KW& ��2������K�JWlKW2 4�2�R�=��~Q�=�����ParameterDescription�l!KW
LW5 :���R�=��~�=�������nIndexAn integer index that is greater than or equal to 0 and less than or equal to GetUpperBound(). 4lKWALW) "��2�������Remarksl?
LW�LW- *�~�2���������Returns the array element at the specified index. Returns�gALWFMW2 4���2����������The CObject pointer element currently at this index; NULL if no element is stored at the index. 4�LWzMW) "��2�������Example(FMW�MW% ��0������zMW�NWc ��[�0����������	���΍)&���	��΍)&���	��>�B����	��V����	��CObArray array;array.Add( new CAge( 21 ) ); // Element 0array.Add( new CAge( 40 ) ); // Element 1ASSERT( *(CAge*) array.GetAt( 0 ) == CAge( 21 ) );4�MW�NW(  ��������See Alsom2�NWSOW; F�d����r�ͥ����ʅ?�������CObArray::SetAt, CObArray::operator [] �_�NW�W1���������U�WI�W�WCObArray::GetSizeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")SOW�WSOW=SOWI�W(  �*�������CObArray::GetSizeD�W��W, (�0�r�=���~����int GetSize() const;)I�W��W& ��2������4��W�W) "��2�������Remarks�y��W��W- *���2���������Returns the size of the array. Since indexes are zero-based, the size is 1 greater than the largest index. See Alsor6�W�W< H�l�2����+�M����h�������CObArray::GetUpperBound, CObArray::SetSize �e��W��W1���������V��W܂W��WCObArray::GetUpperBoundEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")D�W܂W) "�6�2�������CObArray::GetUpperBoundJ��W&�W, (�<�r�=���~����int GetUpperBound() const;)܂WO�W& ��2������4&�W��W) "��2�������Remarks/�O�W��WA P���2�����|������������Returns the current upper bound of this array. Because array indexes are zero-based, this function returns a value 1 less than GetSize. The condition GetUpperBound() = -1 indicates that the array contains no elements. Example(��WڄW% ��0��������W�Wc ��c�0����������	���΍)&���	��΍)&���	��>�B����	�+�M���	��CObArray array;array.Add( new CAge( 21 ) ); // Element 0array.Add( new CAge( 40 ) ); // Element 1ASSERT( array.GetUpperBound() == 1 ); // Largest index4ڄW"�W(  ��������See Alsok0�W��W; F�`����|�����h�������CObArray::GetSize, CObArray::SetSize �`"�W�W1o	��������W�W\�W��WCObArray::InsertAtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")>��W\�W(  �,�������CObArray::InsertAt ��W|�W` ����r�=���~�����������������������void InsertAt( int nIndex, CObject* newElement, int nCount = 1 )throw( CMemoryException );void InsertAt( int nStartIndex, CObArray* pNewArray )throw( CMemoryException );)\�W��W& ��2������K|�W��W2 4�2�R�A��~Q�A�����ParameterDescription	���W��Wn ��7�R�A��~�A�������������������������������nIndexAn integer index that may be greater than GetUpperBound(). newElementThe CObject pointer to be placed in this array. A newElement of value NULL is allowed. nCountThe number of times this element should be inserted (defaults to 1). nStartIndexAn integer index that may be greater than GetUpperBound(). pNewArrayAnother array that contains elements to be added to this array. 4��W-�W) "��2�������Remarks1���W^�WG \���2�������������EW<�����The first version of InsertAt inserts one element (or multiple copies of an element) at a specified index in an array. In the process, it shifts up (by incrementing the index) the existing element at this index, and it shifts up all the elements above it. The second version inserts all the elements from another CObArray collection, starting at the nStartIndex position. The SetAt function, in contrast, replaces one specified array element and does not shift any elements. 4-�W��W) "��2�������Example(^�W��W% ��0��������WΎWW |�{�0����������	���΍)&���	��΍)&���	���܀��	��CObArray array;array.Add( new CAge( 21 ) ); // Element 0array.Add( new CAge( 40 ) ); // Element 1 (will become 2)array.InsertAt( 1, new CAge( 30 ) );  // New element 1V1��W$�W% �b������The results from this program are as follows: 'ΎWK�W$ �������z$�W�W(  ���0���	�����InsertAt example: A CObArray with 3 elements[0] = a CAge at $45C8 21[1] = a CAge at $4646 30[2] = a CAge at $4606 40K�W�W��W4K�W@�W(  ��������See Alsoj/�W��W; F�^����r�ͥ����6eO������CObArray::SetAt, CObArray::RemoveAt �a@�W<�W1��������X<�W{�WM�WCObArray::RemoveAllEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")?��W{�W(  �.�������CObArray::RemoveAllA<�W��W, (�*�r�=���~����void RemoveAll();){�W��W& ��2������4��W�W) "��2�������Remarks+���WD�WA P���2��������b�o��������Removes all the pointers from this array but does not actually delete the CObject objects. If the array is empty already, the function still works. The RemoveAll function frees all memory used for pointer storage. Example(�Wl�W% ��0������TD�WM�W� 耩�0����������	�����΍)&���	��΍)&���	��>�B����	�|����	��b�o���	��>�B����	�|����	����CObArray array;CAge* pa1;CAge* pa2;array.Add( pa1 = new CAge( 21 ) ); // Element 0array.Add( pa2 = new CAge( 40 ) ); // Element 1ASSERT( array.GetSize() == 2 );array.RemoveAll(); // Pointers removed but objects not deletedASSERT( array.GetSize() == 0 );delete pa1;delete pa2;  // Cleans up memory�`l�W��W1���������Y��W�W��WCObArray::RemoveAtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")>M�W�W(  �,�������CObArray::RemoveAtl4��W��W8 @�h�r�=���~��������void RemoveAt( int nIndex, int nCount = 1 );)�W��W& ��2������K��W��W2 4�2�R�=��~Q�=�����ParameterDescription����W��W> J�1�R�=��~�=�����������nIndexAn integer index that is greater than or equal to 0 and less than or equal to GetUpperBound(). nCountThe number of elements to remove. 4��W�W) "��2�������Remarks���W�W; D���2�������_�3��������Removes one or more elements starting at a specified index in an array. In the process, it shifts down all the elements above the removed element(s). It decrements the upper bound of the array but does not free memory. If you try to remove more elements than are contained in the array above the removal point, then the Debug version of the library asserts. The RemoveAt function removes the CObject pointer from the array, but it does not delete the object itself. 4�WR�W) "��2�������Example(�Wz�W% ��0������ R�W�W� ΀A�0����������	���L
���	���΍)&���	��΍)&���	���V����	���_�3����	��6M����	���CObArray array;CObject* pa;array.Add( new CAge( 21 ) ); // Element 0array.Add( new CAge( 40 ) ); // Element 1if( ( pa = array.GetAt( 0 ) ) != NULL ){    array.RemoveAt( 0 );  // Element 1 moves to 0    delete pa; // Delete the original element at 0}V1z�Wp�W% �b������The results from this program are as follows: '�W��W$ ������nHp�W�W& ���0���	���RemoveAt example: A CObArray with 1 elements[0] = a CAge at $4606 404��W9�W(  ��������See Also�H�W��WG ^������r�ͥ�����&�i�����܀�����CObArray::SetAt, CObArray::SetAtGrow, CObArray::InsertAt �]9�WV�W1���������ZV�W��WXCObArray::SetAtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')");��W��W(  �&�������CObArray::SetAtn6V�W��W8 @�l�r�=���~��������void SetAt( int nIndex, CObject* newElement );)��W(�W& ��2������K��Ws�W2 4�2�R�A��~Q�A�����ParameterDescription
�(�W�XD V���R�A��~�A�������������nIndexAn integer index that is greater than or equal to 0 and less thas�W�X��Wn or equal to GetUpperBound(). newElementThe object pointer to be inserted in this array. A NULL value is allowed. 4s�W�X) "��2�������Remarks�?�XCXG \��2�����EW<�����&�i���������Sets the array element at the specified index. SetAt will not cause the array to grow. Use SetAtGrow if you want the array to grow automatically. You must ensure that your index value represents a valid position in the array. If it is out of bounds, then the Debug version of the library asserts. Example(�XkX% ��0������*CXX� ΀U�0����������	���L
���	���΍)&���	��΍)&���	���V����	���EW<���	��6M����	���CObArray array;CObject* pa;array.Add( new CAge( 21 ) ); // Element 0array.Add( new CAge( 40 ) ); // Element 1if( ( pa = array.GetAt( 0 ) ) != NULL ){    array.SetAt( 0, new CAge( 30 ) );  // Replace element 0    delete pa; // Delete the original element at 0}V1kXkX% �b������The results from this program are as follows: 'X�X$ �������^kXX' ���0���	����SetAt example: A CObArray with 2 elements[0] = a CAge at $47E0 30[1] = a CAge at $47A0 404�XKX(  ��������See Also�dXXS v������&�[������&�i����t9\�����ʅ?�������CObArray::GetAt, CObArray::SetAtGrow, CObArray::ElementAt, CObArray::operator [] �aKX�X1���������[�X�X<
XCObArray::SetAtGrowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")?X�X(  �.�������CObArray::SetAtGrow�V�XhX? N���r�=���~�����������void SetAtGrow( int nIndex, CObject* newElement )throw( CMemoryException );)�X�X& ��2������KhX�X2 4�2�R�A��~Q�A�����ParameterDescription���X�X> J�/�R�A��~�A�����������nIndexAn integer index that is greater than or equal to 0. newElementThe object pointer to be added to this array. A NULL value is allowed. 4�X�X) "��2�������Remarks���X�	X. *�]�2���������Sets the array element at the specified index. The array grows automatically if necessary (that is, the upper bound is adjusted to accommodate the new element). Example(�X�	X% ��0�����?��	X(XX ~���0����������	���΍)&���	��΍)&���	���&�i���	���CObArray array;array.Add( new CAge( 21 ) ); // Element 0array.Add( new CAge( 40 ) ); // Element 1array.SetAtGrow( 3, new CAge( 65 ) ); // Element 2 deliberately                                      // skippedV1�	X~X% �b������The results from this program are as follows: '(X�X$ ��������~XUX* "�
�0���	������SetAtGrow example: A CObArray with 4 elements[0] = a CAge at $47C0 21[1] = a CAge at $4800 40[2] = NULL[3] = a CAge at $4840 654�X�X(  ��������See Also�`UX<
XS v������&�[�����r�ͥ����t9\�����ʅ?�������CObArray::GetAt, CObArray::SetAt, CObArray::ElementAt, CObArray::operator [] �_�X�
X1+��������\�
X	X�AXCObArray::SetSizeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")=<
X	X(  �*�������CObArray::SetSize�S�
X�X? N���r�=���~�����������void SetSize( int nNewSize, int nGrowBy = -1 )throw( CMemoryException );)	X�X& ��2������K�XX2 4�2�R�=��~Q�=�����ParameterDescription���X@X8 >�m�R�=��~�=���������nNewSizeThe new array size (number of elements). Must be greater than or equal to 0. nGrowByThe minimum number of element slots to allocate if a size increase is necessary. X@X<
X4X@@X) "��2�������Remarks�s@X�AXG \���2���������|�����+�M�����Establishes the size of an empty or existing array; allocates memory if necessary. If the new size is smaller than the old size, then the array is truncated and all unused memory is released. The nGrowBy parameter affects internal memory allocation while the array is growing. Its use never affects the array size as reported by GetSize and GetUpperBound. �c@@X�BX1���������]�BX�BX�HXCObArray::operator []EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObArray')")B�AX�BX) "�2�2�������CObArray::operator []�X�BXgCX? N���r�=���~�����������CObject*& operator []( int nIndex );CObject* operator []( int nIndex ) const;)�BX�CX& ��2������4gCX�CX) "��2�������Remarks��CX�EXM h���2�����EW<�����V������������These subscript operators are a convenient substitute for the SetAt and GetAt functions. The first operator, invoked for arrays that are not const, may be used on either the right (r-value) or the left (l-value) of an assignment statement. The second, invoked for const arrays, may be used only on the right. The Debug version of the library asserts if the subscript (either on the left or right side of an assignment statement) is out of bounds. 4�CXFX) "��2�������Example(�EX=FX% ��0������TFX�GXh ����0����������	����΍)&���	��΍)&���	���>�B����	����>�B����	��CObArray array;CAge* pa;array.Add( new CAge( 21 ) ); // Element 0array.Add( new CAge( 40 ) ); // Element 1pa = (CAge*)array[0]; // Get element 0ASSERT( *pa == CAge( 21 ) ); // Get element 0array[0] = new CAge( 30 ); // Replace element 0delete pa;ASSERT( *(CAge*) array[0] == CAge( 30 ) ); // Get new element 04=FX-HX(  ��������See Alsog,�GX�HX; F�X����&�[�����r�ͥ������CObArray::GetAt, CObArray::SetAt �\-HX!IX1%��������^!IXZIX+�Xclass CObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')")9�HXZIX(  �"�������class CObject8!IX�IX) "��2�������Description:�ZIX�JX< F���2�������������CObject is the principal  base class for the Microsoft Foundation Class Library. It serves as the root not only for library classes such as CFile and CObList, but also for the classes that you write. CObject provides basic services, including: M�IXKX2 4�8�R��2�h��"����Serialization Support R �JXkKX2 4�B�R��2�h��"����Run-Time Class Information PKX�KX2 4�>�R��2�h��"����Object Diagnostic Output W%kKXLX2 4�L�R��2�h��"����CObjects and Collection Classes m*�KXMXC T�U�R�����������������Note:CObject does not support multiple inheritance. Your derived classes can have only one CObject base class, and that CObject must be leftmost in the hierarchy. It is permissible, though, to have structures and non-CObject-derived classes in right-hand multiple-inheritance branches. =LX�MX(  �*�������#include <afx.h> 7MX�MX) "��2�������Derivation�#�MX��X_ ��G�2��������@#|ˀ���Uk�������;�"�����*0�����You will realize major benefits from CObject derivation if you use some of the optional macros in your class implementation and declarations. The first-level macros, DECLARE_DYNAMIC and IMPLEMENT_DYNAMIC, permit run-time access to the class name and its position in the hierarchy. This, in turn, allows meaningful diagnostic dumping. The second-level macros, DECLARE_SERIAL and IMPLEMENT_SERIAL, include all t�MX��X�HXhe functionality of the first-level macros, and they enable an object to be "serialized" to and from an "archive." ���MXp�X- (���2��������For important information about deriving Microsoft Foundation classes and C++ classes in general, see "How to Derive a Class from CObject" in Chapter 8 of the Class Libraries User's Guide. ;��X��X) "�$�2�������Public MembersEp�X��X) "�8�2�������Construction/Destruction�}��XʂX] ����R���{~���Uˀ�����E�8p���������%몀�������~CObjectVirtual destructor. operator newSpecial new operator. operator deleteSpecial delete operator. 8��X�X) "��2�������Diagnostics�jʂX��XC V���R�e��~�e�p�v�������V���������AssertValidValidates this object's integrity. DumpProduces a diagnostic dump of this object. :�X�X) "�"�2�������Serialization����X��XD V��R����~����eN#��������4������IsSerializableTests to see if this object can be serialized. SerializeLoads or stores an object from/to an archive. :�X�X) "�"�2�������Miscellaneous����XՅXJ b�G�R���[~���`B����������%
	������GetRuntimeClassReturns the CRuntimeClass structure corresponding to this object's class. IsKindOfTests this object's relationship to a given class. >�X�X) "�*�2�������Protected MembersX#ՅXk�X5 :�F�R����Ɗ������CObjectDefault constructor. <�X��X) "�&�2�������Private Members�Ek�X/�XC V���R�5��~�5�Ɗ��������Y������CObjectCopy constructor. operator =Assignment operator. 3
��Xb�X) "��2�������Macros�/�Xp�Xf ��Q�R�قC}���a���������@#|ˀ�����Uk��������;�"������RUNTIME_CLASSReturns the CRuntimeClass structure corresponding to the named class. DECLARE_DYNAMICPermits access to run-time class information (used in each class declaration). IMPLEMENT_DYNAMICPermits access to run-time class information (used once in the class implementation). DECLARE_SERIAL MacroPermits serialization and access to run-time class information (used in each class declaration). ��b�X+�X6 :��R�قC}����*0������IMPLEMENT_SERIAL MacroPermits serialization and access to run-time class information (used once in the class implementation). �ap�X��X1��������_��X��X��XCObject::AssertValidEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")@+�X��X(  �0�������CObject::AssertValidQ%��XN�X, (�J�r�=���~����virtual void AssertValid() const;)��Xw�X& ��2������4N�X��X) "��2�������Remarksx5w�X#�XC T�k�2����������������AssertValid performs a validity check on this object by checking its internal state. In the Debug version of the library, AssertValid may assert and thus terminate the program with a message that lists the line number and filename where the assertion failed. When you write your own class, you should override the AssertValid function to provide diagnostic services for yourself and other users of your class. The overridden AssertValid usually calls the AssertValid function of its base class before checking data members unique to the derived class. n4��X��X: B�i�2�������������Because AssertValid is a const function, you are not permitted to change the object state during the test. Your own derived class AssertValid functions should not throw exceptions but rather should assert if they detect invalid object data. The definition of "validity" depends on the object's class. As a rule, the function should perform a "shallow check." That is, if an object contains pointers to other obj#�X��X+�Xects, it should check to see if the pointers are not null, but should not perform validity testing on the objects referred to by the pointers. 4#�X��X) "��2�������Example�^��Xm�X> L���2�����đ����	�����See CObList::CObList for a listing of the CAge class used in all CObject examples. (��X��X% ��0�������m�X��Xg ���0���	�p�v����	����L
���	�p�v����	��>�B����	��>�B����	���void CAge::AssertValid() const{    CObject::AssertValid();    ASSERT( m_years > 0 );    ASSERT( m_years < 105 );}�]��X�X1{��������`�XS�X��XCObject::CObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")<��XS�X(  �(�������CObject::CObjectp7�X��X9 B�n�r�=���~���������CObject();CObject( const CObject& objectSrc );)S�X��X& ��2������K��X7�X2 4�2�R�=��~Q�=�����ParameterDescriptione0��X��X5 :�`�R�=��~�=�������objectSrcA reference to another CObject. 47�X��X) "��2�������RemarksY��X)�X@ N�3�2���������*0�������These functions are the standard CObject constructors. The default version is automatically called by the constructor of your derived class. If your class is serializable (it incorporates the IMPLEMENT_SERIAL macro), then you must have a default constructor (a constructor with no arguments) in your class declaration. If you don't need a default constructor, declare a private or protected "empty" constructor. For more information, see "How to Derive a Class from CObject" in Chapter 8 of the Class Libraries User's Guide. tG��X��X- (���2��������The standard C++ default class copy constructor does a member-by-member copy. The presence of the private CObject copy constructor guarantees a compiler error message if the copy constructor of your class is needed but not available. You must, therefore, provide a copy constructor if your class requires this capability. �^)�X,�X1���������a,�Xj�X��XCObject::~CObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")>��Xj�X) "�*�2�������CObject::~CObjectB,�X��X, (�,�r�=���~����virtual ~CObject())j�X��X& ��2������4��X	�X) "��2�������Remarkss:��X|�X9 @�u�2������������This function is the standard CObject destructor. If your derived class must free allocated memory or do other cleanup work, you must provide your own destructor. Because ~CObject is a virtual destructor, C++ ensures that CObject::~CObject is automatically called as part of the destructor of your class. uJ	�X��X+ &���r����������Note:Your destructor should not throw exceptions or allocate objects. �b|�X��X1w��������b��X��X�YDECLARE_DYNAMIC MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")A��X��X(  �2�������DECLARE_DYNAMIC MacroU#��X�X2 4�F�r�=���~������DECLARE_DYNAMIC( class_name ))��XC�X& ��2������K�X��X2 4�2�R�=��~Q�=�����ParameterDescriptionm>C�X��X/ .�|�R�=��~�=�����class_nameThe actual name of the class (without quotes). 4��X/�X) "��2�������RemarksO��X�YO l��2���������������Uk�������DECLARE_DYNAMIC generates the C++ header code necessary for a CObject-derived class with accessible run-time information. Use the DECLARE_DYNAMIC macro in a .H module, then include that module in all .CPP modules that need access to objects of this class. For more information, see "How to Derive a Class from CObject" in Chapter 8 of the Class Libraries User's Guide. If DECL/�X�Y��XARE_DYNAMIC is included in the class declaration, then IMPLEMENT_DYNAMIC must be included in the class implementation. ��/�XWY@ N��2�����;�"����������The DECLARE_SERIAL macro includes all the functionality of DECLARE_DYNAMIC but adds the ability to serialize the object. See Alsou9�Y�Y< H�r�2����;�"����Uk��������DECLARE_SERIAL Macro, IMPLEMENT_DYNAMIC Macro �aWY^Y1���������c^Y�YZYDECLARE_SERIAL MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")A�Y�Y) "�0�2�������DECLARE_SERIAL MacroT"^Y�Y2 4�D�r�=���~������DECLARE_SERIAL( class_name ))�YY& ��2������K�YgY2 4�2�R�=��~Q�=�����ParameterDescriptionm>Y�Y/ .�|�R�=��~�=�����class_nameThe actual name of the class (without quotes). 4gYY) "��2�������Remarks>��YFYO l���2����������������*0�����DECLARE_SERIAL generates the C++ header code necessary for a CObject-derived class that can be serialized. Use the DECLARE_SERIAL macro in a .H module, then include that module in all .CPP modules that need access to objects of this class. For more information, see "How to Derive a Class from CObject," in Chapter 8 of the Class Libraries User's Guide. If DECLARE_SERIAL is included in the class declaration, then IMPLEMENT_SERIAL must be included in the class implementation. �`Y�Y? N���2�������@#|ˀ�������The DECLARE_SERIAL macro includes all the functionality of DECLARE_DYNAMIC. See Alsou9FYZY< H�r�2����@#|ˀ����*0������DECLARE_DYNAMIC Macro, IMPLEMENT_SERIAL Macro �Z�Y�Y1V��������d�YYF@YCObject::DumpEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')"):ZYY) "�"�2�������CObject::Dumpd2�Y�Y2 4�d�r�=���~������virtual void Dump( CDumpContext& dc ) const;)Y�Y& ��2������K�Y�Y2 4�2�R�=��~Q�=�����ParameterDescriptionxC�Yo	Y5 :���R�=��~�=�������dcThe diagnostic dump context for dumping, usually afxDump. 4�Y�	Y) "��2�������Remarks0�o	Y�Yd ����2�����ԏ��������������Uk�������*0�����Dumps the contents of your object to a CDumpContext object. When you write your own class, you should override the Dump function to provide diagnostic services for yourself and other users of your class. The overridden Dump usually calls the Dump function of its base class before printing data members unique to the derived class. CObject::Dump prints the class name if your class uses the IMPLEMENT_DYNAMIC or IMPLEMENT_SERIAL macro. �S�	YWY1 2���r������������Note:Your Dump function should not print a newline at the end of its output. �R�YY\ �������������������}��c����������Dump calls make sense only in the Debug version of the Microsoft Foundation library. Bracket calls, function declarations, and function implementations with #ifdef _DEBUG/#endif statements for conditional compilation. Since Dump is a const function, you are not permitted to change the object state during the dump. The CDumpContext operator << calls Dump when a CObject pointer is inserted. Dump permits only "acyclic" dumping of objects. You can dump a list of objects, for example, but if one of the objects is the list itself, you will eventually overflow the stack. 3WY8Y(  ��������Example'Y_Y$ ��������8YF@YZ ���0���	�V������	�ԏ����	����L
���	�V������	����   void CAge::Dump( CDumpContext &dc ) const{       CObjec_YF@YZYt::Dump( dc );       dc << "Age = " << m_years;}�e_Y�@Y1���������e�@Y AY�HYCObject::GetRuntimeClassEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")DF@Y AY(  �8�������CObject::GetRuntimeClass_3�@YAY, (�f�r�=���~����virtual CRuntimeClass* GetRuntimeClass() const;) AY�AY& ��2������4AY�AY) "��2�������Remarks�r�AY�BY2 4���2����������There is one CRuntimeClass structure for each CObject-derived class. The structure members are as follows: W�AY�DYT v��R��3}���������������*0���������const char* m_pszClassNameA null-terminated string containing the ASCII class name. int m_nObjectSizeThe actual size of the object. If the object has data members that point to allocated memory, the size of that memory is not included. WORD m_wSchemaThe schema number (-1 for nonserializable classes). See the IMPLEMENT_SERIAL macro for a description of schema number. void (*m_pfnConstruct)(void* p)A pointer to the default constructor of your class (valid only if the class is serializable). �o�BY{EY5 :���R��3}���������CRuntimeClass* m_pBaseClassA pointer to the CRuntimeClass structure that corresponds to the base class. ���DYkFYE X�W�����Uk�������*0��������This function requires use of the IMPLEMENT_DYNAMIC or IMPLEMENT_SERIAL macros in the class implementation. You will get incorrect results otherwise. Returns�b{EY�FY1 2������������A pointer to the CRuntimeClass structure corresponding to this object's class; never NULL. 3kFY1GY(  ��������Example'�FYXGY$ �������w1GYHY? N���0���	��`B�����	��>�B����	��CAge a(21);CRuntimeClass* prt = a.GetRuntimeClass();ASSERT( strcmp( prt->m_pszClassName, "CAge" )  == 0 );4XGYBHY(  ��������See Alsom2HY�HY; F�d����%
	����a�������CObject::IsKindOf, RUNTIME_CLASS macro �dBHYDIY1��������fDIY�IYXMYIMPLEMENT_DYNAMIC MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")C�HY�IY(  �6�������IMPLEMENT_DYNAMIC Macrop8DIY�IY8 @�p�r�=���~��������IMPLEMENT_DYNAMIC( class_name, base_class_name ))�IY JY& ��2������K�IYkJY2 4�2�R���m~Q�������ParameterDescription�~ JY KY7 >���R���m~�����������class_nameThe actual name of the class (without quotes). base_class_nameThe name of the base class (without quotes). 4kJYTKY) "��2�������Remarks�v KY
MY@ N���2���������������Generates the C++ code necessary for a dynamic CObject-derived class with run-time access to the class name and position within the hierarchy. Use the IMPLEMENT_DYNAMIC macro in a .CPP module, then link the resulting object code only once. For more information, see "How to Derive a Class from CObject," in Chapter 8 of the Class Libraries User's Guide. See AlsoNTKYXMY0 0�<�2�����*0������IMPLEMENT_SERIAL Macro �c
MY�MY1���������g�MY/NY �YIMPLEMENT_SERIAL MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")CXMY/NY) "�4�2�������IMPLEMENT_SERIAL Macro�B�MY�NY> L���r�=���~����������IMPLEMENT_SERIAL( class_name, base_class_name, wSchema ))/NY�NY& ��2������K�NY#OY2 4�2�R���m~Q�������ParameterDescription�z�NY�Y@ N���R���m~���������������class_nameThe actual name of the class (without quotes). base_class_nameThe name of the base class (without quotes). wSchemaPlaceholder for future#OY�YXMY implementation. The class schema number must not be -1. This is a "version number" that will be encoded in the archive to enable a deserializing program to identify and handle data created by earlier program versions. 4#OY�Y) "��2�������Remarks�t�YтY@ N���2���������������Generates the C++ code necessary for a dynamic CObject-derived class with run-time access to the class name and position within the hierarchy. Use the IMPLEMENT_SERIAL macro in a .CPP module; then link the resulting object code only once. For more information, see "How to Derive a Class from CObject" in Chapter 8 of the Class Libraries User's Guide. See AlsoO�Y �Y0 0�>�2����Uk��������IMPLEMENT_DYNAMIC Macro �^тY��Y1��������h��Y�Y;�YCObject::IsKindOfEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")> �Y�Y) "�*�2�������CObject::IsKindOfk9��YX�Y2 4�r�r�=���~������BOOL IsKindOf( const CRuntimeClass* pClass ) const;)�Y��Y& ��2������KX�ȲY2 4�2�R�=��~Q�=�����ParameterDescription�b��Yi�Y; F���R�=��~�=���������pClassA pointer to a CRuntimeClass structure associated with your CObject-derived class. 4̄Y��Y) "��2�������Remarks��i�Yk�YJ b�	�2������@#|ˀ���;�"���������IsKindOf tests this object to see if (1) it is an object of the specified class or (2) if it is an object of a class derived from the specified class. This function only works for classes declared with the DECLARE_DYNAMIC or DECLARE_SERIAL macros. Do not use this function extensively because it defeats the C++ polymorphism feature. Use virtual functions instead. ReturnssD��YއY/ .���2���������TRUE if the object corresponds to the class; otherwise FALSE. 4k�Y�Y) "��2�������Example(އY:�Y% ��0�����Y��Y��Y� ����0���	�Uk�����	��*0���	��>�B����	�%
	���	�a����	��>�B����	�%
	���	�a����	��L
���	��CAge a(21); // must use IMPLEMENT_DYNAMIC or IMPLEMENT_SERIALASSERT( a.IsKindOf( RUNTIME_CLASS( CAge ) ) );ASSERT( a.IsKindOf( RUNTIME_CLASS( CObject ) ) );4:�YljY(  ��������See Alsot9��Y;�Y; F�r����`B������a�������CObject::GetRuntimeClass, RUNTIME_CLASS macro �dljYЊY1B��������iЊY�Y$�YCObject::IsSerializableEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")C;�Y�Y(  �6�������CObject::IsSerializableL ЊY_�Y, (�@�r�=���~����BOOL IsSerializable() const;)�Y��Y& ��2������4_�Y��Y) "��2�������Remarks-���Y�YB R���2������;�"�����*0�����IsSerializable tests whether this object is eligible for serialization. For a class to be serializable, its declaration must contain the DECLARE_SERIAL macro, and the implementation must contain the IMPLEMENT_SERIAL macro. S(��Y<�Y+ &�P�r����������Note:Do not override this function. 3�Yo�Y(  ��������Returnsl><�YۍY. ,�|���������TRUE if this object can be serialized; otherwise FALSE. 3o�Y�Y(  ��������Example'ۍY5�Y$ ������r4�Y��Y> L�h�0���	��>�B����	��eN#���	��CAge a(21);ASSERT( a.IsSerializable() );45�YێY(  ��������See AlsoI��Y$�Y/ .�4������4������CObject::Serialize �_ێY��Y1���������j��Y�Y��YCObject::SerializeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")>$�Y�Y(  �,�������CObject::Serialize��Y�Y$�Y�l��Y��Y9 B���r�=���~���������virtual void Serialize( CArchive& ar )throw( CMemoryException, CArchiveException, CFileException );)�Y��Y& ��2������K��Y%�Y2 4�2�R�=��~Q�=�����ParameterDescriptioni4��Y��Y5 :�h�R�=��~�=�������arA CArchive object to serialize to or from. 4%�Y��Y) "��2�������RemarksU���Y�Yo ����2��������������;�"�����*0����㇠l�����7�������Serialize reads or writes this object from or to an archive. You must override Serialize for each class that you intend to serialize. The overridden Serialize must first call the Serialize function of its base class. You must also use the DECLARE_SERIAL macro in your class declaration, and you must use the IMPLEMENT_SERIAL macro in the implementation. Use CArchive::IsLoading or CArchive::IsStoring to determine whether the archive is loading or storing. �:��Y��Yb ��u�2������`GJ�����@�݀����������������Serialize is called by CArchive::ReadObject and CArchive::WriteObject. These functions are associated with the CArchive insertion operator (<<) and extraction operator (>>). For serialization examples, refer to both the cookbook and the tutorial in the Class Libraries User's Guide. Example(�Y��Y% ��0�����"���Y��Yi ��s�0���	���4���	��ؘ����	����L
���	���4���	���7�����	������   void CAge::Serialize( CArchive& ar ){       CObject::Serialize( ar );    if( ar.IsStoring() )           ar << m_years;    else           ar >> m_years;}�`��Y��Y1���������k��Y��Y��YRUNTIME_CLASS MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")?��Y��Y(  �.�������RUNTIME_CLASS MacroS!��Y �Y2 4�B�r�=���~������RUNTIME_CLASS( class_name ))��YI�Y& ��2������K �Y��Y2 4�2�R�=��~Q�=�����ParameterDescriptionm>I�Y�Y/ .�|�R�=��~�=�����class_nameThe actual name of the class (without quotes). 4��Y5�Y) "��2�������Remarks�x�Y��YB T���2������`B������������RUNTIME_CLASS returns a pointer to a CRuntimeClass structure for the class specified by class_name. Example(5�Y�Y% ��0������m��Y��Y> L���0���	�a����	��>�B����	��CRuntimeClass* prt = RUNTIME_CLASS( CAge );ASSERT( strcmp( prt->m_pszClassName, "CAge" )  == 0 );4�Y��Y(  ��������See Also�X��Y��YG ^������@#|ˀ���`B������Uk��������DECLARE_DYNAMIC Macro, CObject::GetRuntimeClass, IMPLEMENT_DYNAMIC Macro �`��Y&�Y1j��������l&�Ye�Y��YCObject::operator =EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")?��Ye�Y(  �.�������CObject::operator =^,&�Y��Y2 4�X�r�=���~������void operator =( const CObject& src );)e�Y��Y& ��2������4��Y �Y) "��2�������Remarks~W��Y��Y' ���2������The standard C++ default class assignment behavior is a member-by-member copy. The presence of this private assignment operator guarantees a compiler error message if you assign without the overridden operator. You must, therefore, provide an assignment operator in your derived class if you intend to assign objects of your derived class. �e �Y4�Y1��������m4�Yy�YyZCObject::operator deleteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")E��Yy�Y) "�8�2�������CObject::operator deleteX&4�Y��Y2 4�L�r�=���~������void operator delete( void* p );)y�YZ& ��2��������YZ��Y4��Y@Z) "��2�������Remarks$�ZdZ9 @���2������������For the Release version of the library, operator delete simply frees the memory allocated by operator new. In the Debug version, operator delete participates in an allocation-monitoring scheme designed to detect memory leaks. �^@Z�Z7 >���r��������������Note:If you override operators new and delete, you forfeit the diagnostic capability. 4dZ-Z(  ��������See AlsoL�ZyZ/ .�:����E�8p������CObject::operator new �b-ZZ1r��������nZMZ�	ZCObject::operator newEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObject')")AyZMZ(  �2�������CObject::operator new�Z]ZZ ��m�r�=���~���������������������void* operator new( size_t nSize )throw( CMemoryException );void* operator new( size_t nSize, const char FAR* lpszFileName, int nLine )throw( CMemoryException );)MZ�Z& ��2������4]Z�Z) "��2�������RemarksL�ZZ: B�%�2�������������For the Release version of the library, operator new performs an optimal memory allocation in a manner similar to malloc. In the Debug version, operator new participates in an allocation-monitoring scheme designed to detect memory leaks. If you use the code line: (�Z.Z% ��0�����=ZkZ% �0�0���	��#define new DEBUG_NEW��.ZRZ9 @�]���������>>�����before any of your implementations in a .CPP file, then the second version of new will be used, storing the filename and line number in the allocated block for later reporting. You do not have to worry about supplying the extra parameters; a macro takes care of that for you. Even if you don't use DEBUG_NEW in Debug mode, you still get leak detection, but without the source file line number reporting described above. ��kZ	Z7 <��R�������������Note:If you override this operator, you must also override delete. Do not use the standard library _new_handler function. 4RZ?	Z(  ��������See AlsoO 	Z�	Z/ .�@�����%몀�����CObject::operator delete �\?	Z
Z1U��������o
ZT
Z�MZclass CObListEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")9�	ZT
Z(  �"�������class CObList9
Z�
Z* $����R�����Description�iT
ZB
ZL f����������������������The CObList class supports ordered lists of nonunique CObject pointers accessible sequentially or by pointer value. CObList lists behave like doubly linked lists. A variable of type POSITION is a kind of key for the list. You can use a POSITION variable as an iterator to sequentially traverse a list and as a bookmark to hold a place. A position is not the same as an index, however. Element insertion is very fast at the list head, at the tail, and at a known POSITION. A sequential search is necessary in order to look up an element by value or index. This search can be slow if the list is long. �>�
Z�Za ��}�������*0��������4���������������CObList incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. If a list of CObject pointers is stored to an archive, either with the overloaded insertion operator or with the Serialize member function, each CObject element is, in turn, serialized. If you need a dump of individual CObject elements in the list, you must set the depth of the dump context to 1 or greater. When a CObList object is deleted, or when its elements are removed, only the CObject pointers are removed, not the objects they reference. S$B
Z@@Z/ .�H���Z@@Z�	Z��������#include <afxcoll.h> See Also\!�Z�@Z; F�B������
���㱸�Ҁ�����CStringList, CPtrList 7@@Z�@Z) "��2�������Derivation�]�@ZuBZE X���2�������	����	�����The tutorial in the Class Library User's Guide illustrates the derivation of a CPersonList class from CObList. This new list class, designed to hold pointers to CPerson objects, adds a new data member and new member functions. Note that the resulting list is not strictly "type safe" because it allows insertion of any CObject pointer. ���@Z3CZ8 >�
�r����������*0�����Note:You must use the IMPLEMENT_SERIAL macro in the implementation of your derived class if you intend to serialize the list. ;uBZnCZ) "�$�2�������Public MembersE3CZ�CZ) "�8�2�������Construction/Destruction�jnCZlDZO n���R����đ��������H�Wˀ�������CObListConstructs an empty list for CObject pointers. ~CObListDestroys a CObList object. =�CZ�DZ) "�(�2�������Head/Tail Access��lDZxEZD V��R����FD@q�����㦷Nq������GetHeadReturns the head element of the list (cannot be empty). GetTailReturns the tail element of the list (cannot be empty). 7�DZ�EZ) "��2�������Operations�xEZ�GZn ��+�R����~����gM������L�uM������[��������eΖ�������1��������RemoveHeadRemoves the element from the head of the list. RemoveTailRemoves the element from the tail of the list. AddHeadAdds an element (or all the elements in another list) to the head of the list (makes a new head). AddTailAdds an element (or all the elements in another list) to the tail of the list (makes a new tail). RemoveAllRemoves all the elements from this list. 6
�EZ�GZ) "��2�������Iteration_��GZGIZ` ����R�ÁY~���(�/������g�������㥏Gq������WJq������GetHeadPositionReturns the position of the head element of the list. GetTailPositionReturns the position of the tail element of the list. GetNextGets the next element for iterating. GetPrevGets the previous element for iterating. C�GZ�IZ) "�4�2�������Retrieval/Modification��GIZ�JZR r�W�R�I��~�I��{�������=|�������dž"������GetAtGets the element at a given position. SetAtSets the element at a given position. RemoveAtRemoves an element from this list, specified by position. 6
�IZ�JZ) "��2�������Insertion���JZ�KZD V��R�o��~�o��JV������c{��������InsertBeforeInserts a new element before a given position. InsertAfterInserts a new element after a given position. 6
�JZ�KZ) "��2�������Searching���KZ�LZD V�/�R�C��~�C�9eC�������I��ɀ�����FindGets the position of an element specified by pointer value. FindIndexGets the position of an element specified by a zero-based index. 3
�KZ�LZ) "��2�������Status�{�LZ�MZC V���R���~��QV�������<uڀ�����GetCountReturns the number of elements in this list. IsEmptyTests for the empty list condition (no elements). �]�LZNZ1o��������pNZNNZN�ZCObList::AddHeadEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")<�MZNNZ(  �(�������CObList::AddHead��NZ)OZN j��r�=���~�����������������POSITION AddHead( CObject* newElement )throw( CMemoryException );void AddHead( CObList* pNewList )throw( CMemoryException );)NNZROZ& ��2������K)OZ�OZ2 4�2�R�A��~Q�A�����ParameterDescription��ROZ��ZJ b�O�R�A��~�A���������������newElementThe CObject�OZ��Z�MZ pointer to be added to this list. pNewListA pointer to another CObList list. The elements in pNewList will be added to this list. 4�OZ΀Z) "��2�������Remarks�z��Zu�Z- *���2���������Adds a new element or list of elements to the head of this list. The list may be empty before the operation. Returns}Q΀Z�Z, (���2��������The first version returns the POSITION value of the newly inserted element. 4u�Z&�Z) "��2�������Example(�ZN�Z% ��0�����i&�Z��Zi ���0���	㌎N
���	���[�����	��[�����	���Ƀ����	��[�����	���   CObList list;   list.AddHead( new CAge( 21 ) ); // 21 is now at head   list.AddHead( new CAge( 40 ) ); // 40 replaces 21 at head#ifdef _DEBUG   afxDump.SetDepth( 1 );   afxDump << "AddHead example: " << &list << "\n";#endifV1N�Z
�Z% �b������The results from this program are as follows: '��Z4�Z$ ������zS
�Z��Z' ���0���	����AddHead example: A CObList with 2 elementsa CAge at $44A8 40a CAge at $442A 2144�Z�Z(  ��������See Alsol1��ZN�Z; F�b����FD@q�����gM������CObList::GetHead, CObList::RemoveHead �]�Z܅Z1��������q܅Z�Z��ZCObList::AddTailEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")<N�Z�Z(  �(�������CObList::AddTail��܅Z�ZN j��r�=���~�����������������POSITION AddTail( CObject* newElement )throw( CMemoryException );void AddTail( CObList* pNewList )throw( CMemoryException );)�Z�Z& ��2������K�Zg�Z2 4�2�R�A��~Q�A�����ParameterDescription���ZX�ZJ b�O�R�A��~�A���������������newElementThe CObject pointer to be added to this list. pNewListA pointer to another CObList list. The elements in pNewList will be added to this list. 4g�Z��Z) "��2�������Remarks�zX�Z3�Z- *���2���������Adds a new element or list of elements to the tail of this list. The list may be empty before the operation. Returns}Q��Z��Z, (���2��������The first version returns the POSITION value of the newly inserted element. 43�Z�Z) "��2�������Example(��Z�Z% ��0�����V��Zb�Zh ����0���	㌎N
���	��eΖ����	��eΖ����	���Ƀ����	��eΖ����	���   CObList list;   list.AddTail( new CAge( 21 ) );   list.AddTail( new CAge( 40 ) ); // List now contains (21, 40)#ifdef _DEBUG   afxDump.SetDepth( 1 );   afxDump << "AddTail example: " << &list << "\n";#endifV1�Z��Z% �b������The results from this program are as follows: 'b�ZߋZ$ ������zS��ZY�Z' ���0���	����AddTail example: A CObList with 2 elementsa CAge at $444A 21a CAge at $4526 404ߋZ��Z(  ��������See Alsol1Y�Z��Z; F�b���㦷Nq����L�uM������CObList::GetTail, CObList::RemoveTail �]��Z��Z1���������r��ZÍZ�ZCObList::CObListEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")<��ZÍZ(  �(�������CObList::CObListW%��Z�Z2 4�J�r�=���~������CObList( int nBlockSize = 10 );)ÍZC�Z& ��2������K�Z��Z2 4�2�R�=��~Q�=�����ParameterDescriptionxIC�Z�Z/ .���R�=��~�=�����nBlockSizeThe memory-allocation granularity for extending the list. 4��Z:�Z) "��2�������Remarks��ZF�Z@ N���2���������������Constructs an empty CObject pointer list. As the list grows, memory is allocated in units of nBlockSize entries. If a memory allo:�ZF�Z��Zcation fails, a CMemoryException is thrown. Example�a:�Z��Z2 4���2�������	���Below is a listing of the CObject-derived class CAge used in all the collection examples: (F�Z�Z% ��0�����}��Z�Z� ����0���	��L
���	㌎N
���	���L
���	���;�"���	�������Y����	����4���	��ؘ����	��p�v����	��// Simple CObject-derived class for CObList examplesclass CAge : public CObject{    DECLARE_SERIAL( CAge )private:    int m_years;public:    CAge() { m_years = 0; }    CAge( int age ) { m_years = age; }    CAge( const CAge& a ) { m_years = a.m_years; } // Copy constructor    void Serialize( CArchive& ar);    void AssertValid() const;�C�Z��Ze ����0���	����������V������	�ԏ����	����L
���	�V������	������    const CAge& operator=( const CAge& a )    {        m_years = a.m_years; return *this;    }    BOOL operator==(CAge a)    {        return m_years == a.m_years;    } #ifdef _DEBUG    void Dump( CDumpContext& dc ) const    {        CObject::Dump( dc );        dc << m_years;    } #endif};b7�Z�Z+ &�n��������Below is an example of CObList constructor usage: '��Z@�Z$ ���������Z�ZI `�+�0��㌎N
���	��㌎N
���	㌎N
���	��CObList list( 20 );  // List on the stack with blocksize = 20CObList* plist = new CObList; // List on the heap with default blocksize�^@�Z��Z1f��������s��Z��Z�ZCObList::~CObListEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")=�Z��Z(  �*�������CObList::~CObList;��Z%�Z, (��r�=���~����~CObList();)��ZN�Z& ��2������4%�Z��Z) "��2�������Remarks�kN�Z�Z2 4���2����������Destroys a CObList object but does not destroy the CObject objects that are referenced in the list. �Z��Z��Z1���������t��Z��ZH�ZCObList::FindEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')"):�Z��Z) "�"�2�������CObList::Find�P��Zl�Z8 @���r�=���~��������POSITION Find( CObject* searchValue, POSITION startAfter = NULL ) const;)��Z��Z& ��2������Kl�Z��Z2 4�2�R�I��~Q�I�����ParameterDescription�n��Z��Z7 >���R�I��~�I���������searchValueThe object pointer to be found in this list. startAfterThe start position for the search. 4��Z��Z) "��2�������Remarks���Z��Z: B���2�������������Searches the list sequentially to find the first CObject pointer matching the specified CObject pointer. Note that the "pointer" values are compared, not the contents of the objects. Returns�u��Zb�Z2 4���2����������A POSITION value that can be used for iteration or object pointer retrieval; NULL if the object is not found. 4��Z��Z) "��2�������Example(b�Z��Z% ��0������x��Z��Zu ����0��㌎N
���	������[�����	��[�����	��Qj���	���>�B����	��V����	���CObList list;CAge* pa1;CAge* pa2;POSITION pos;list.AddHead( pa1 = new CAge( 21 ) );list.AddHead( pa2 = new CAge( 40 ) );     // List now contains (40, 21)if( ( pos = list.Find( pa1 ) ) != NULL )  // Hunt for pa1,{                                         // starting at head by default    ASSERT( *(CAge*) list.GetAt( pos ) == CAge( 21 ) );}4��Z��Z(  ��������See Alsoi.��ZH�Z; F�\���㥏Gq����WJq������CObList::GetNext, CObList::GetPrev �_��Z��Z1���������u��Z"[�[CObList::FindIndexEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")>H�Z"[(  �,���������Z"[H�ZCObList::FindIndex_-��Z�[2 4�Z�r�=���~������POSITION FindIndex( int nIndex ) const;)"[�[& ��2������K�[�[2 4�2�R�=��~Q�=�����ParameterDescriptionpA�[e[/ .���R�=��~�=�����nIndexThe zero-based index of the list element to be found. 4�[�[) "��2�������Remarks��e[d[4 6�/�2�����������Uses the value of nIndex as an index into the list. It starts a sequential scan from the head of the list, stopping on the nth element. Returns��[[8 @���2������������A POSITION value that can be used for iteration or object pointer retrieval; NULL if nIndex is negative or too large. 4d[O[) "��2�������Example([w[% ��0�����n�O[�[s ����0��㌎N
���	����[�����	��[�����	��I��ɀ��	���>�B����	��V����	���CObList list;POSITION pos;list.AddHead( new CAge( 21 ) );list.AddHead( new CAge( 40 ) ); // List now contains (40, 21)if( ( pos = list.FindIndex( 0 )) != NULL ){    ASSERT( *(CAge*) list.GetAt( pos ) == CAge( 40 ) );}4w[[(  ��������See Also�A�[�[G ^������9eC����㥏Gq����WJq������CObList::Find, CObList::GetNext, CObList::GetPrev �[[-[1���������v-[g["[CObList::GetAtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')"):�[g[(  �$�������CObList::GetAt�Z-[[? N���r�=���~�����������CObject*& GetAt( POSITION position );CObject* GetAt( POSITION position ) const;)g[)[& ��2������K[t[2 4�2�R�=��~Q�=�����ParameterDescription�h)[#[G ^���R�=��~�=��������Qj�����positionA POSITION value returned by a previous BeginIterate or Find member function call. 4t[W[) "��2�������Remarks��#[/
[S t��2����������V��������������A variable of type POSITION is a kind of "key" for the list. It is not the same as an index, and you cannot operate on a POSITION value yourself. GetAt retrieves the CObject pointer associated with a given position. You must ensure that your POSITION value represents a valid position in the list. If it is invalid, then the Debug version of the library asserts. Returnsg5W[�
[2 4�j�2�����FD@q�����See the return value description for GetHead. 4/
[�
[) "��2�������ExampleX&�
["[2 4�L�2�����I��ɀ����See the example for FindIndex. 5�
[W[) "��2�������See Also�k"["[` ����2����9eC�����=|����㥏Gq����WJq����FD@q������CObList::Find, CObList::SetAt, CObList::GetNext, CObList::GetPrev, CObList::GetHead �^W[�[1k��������w�[�[S@[CObList::GetCountEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")>"[�[) "�*�2�������CObList::GetCountE�[4
[, (�2�r�=���~����int GetCount() const;)�[]
[& ��2������44
[�
[) "��2�������Remarksd7]
[�
[- *�n�2���������Gets the number of elements in this list. ReturnsX2�
[M[& �d�2������An integer value containing the element count. 4�
[�[) "��2�������Example(M[�[% ��0�������[�[c ��E�0��㌎N
���	���[�����	��[�����	��>�B����	����ŀ��	��CObList list;list.AddHead( new CAge( 21 ) );list.AddHead( new CAge( 40 ) ); // List now contains (40, 21)ASSERT( list.GetCount() == 2 );4�[@[(  ��������See Also�[@["[G�[S@[/ .�0����<uڀ�����CObList::IsEmpty �]@[�@[1C
��������x�@[A[/K[CObList::GetHeadEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")<S@[A[(  �(�������CObList::GetHeadg4�@[�A[3 6�h�r�=���~�������CObject*& GetHead();CObject* GetHead() const;)A[�A[& ��2������4�A[�A[) "��2�������Remarksd�A[EC[G \�;�2����������<uڀ�������Gets the CObject pointer that represents the head element of this list. You must ensure that the list is not empty before calling GetHead. If the list is empty, then the Debug version of the library asserts. Use IsEmpty to verify that the list contains elements. Returns,��A[qD[9 @���2������������If the list is accessed through a pointer to a const CObList, then GetHead returns a CObject pointer. This allows the function to be used only on the right side of an assignment statement and thus protects the list from modification. OEC[�E[@ N��2���������������If the list is accessed directly or through a pointer to a CObList, then GetHead returns a "reference" to a CObject pointer. This allows the function to be used on either side of an assignment statement and thus allows the list entries to be modified. Example�gqD[SF[, (���2��������The following example illustrates the use of GetHead on the left side of an assignment statement. (�E[{F[% ��0������SF[�H[x ���0���	㌎N
���	��㌎N
���	㌎N
���	������[�����	��[�����	���FD@q���	��    const CObList* cplist;    CObList* plist = new CObList;    CAge* page1 = new CAge( 21 );    CAge* page2 = new CAge( 30 );    CAge* page3 = new CAge( 40 );    plist->AddHead( page1 );    plist->AddHead( page2 );  // List now contains (30, 21)    // The following statement REPLACES the head element    plist->GetHead() = page3; // List now contains (40, 21)�X{F[CJ[k ����0���	�>�B����	�FD@q���	����FD@q���	��>�B����	�FD@q���	�������    ASSERT( *(CAge*) plist->GetHead() == CAge( 40 ) );    cplist = plist;  // cplist is a pointer to a const list//  cplist->GetHead() = page3; // Does not compile!    ASSERT( *(CAge*) plist->GetHead() == CAge( 40 ) ); // OK    delete page1;    delete page2;    delete page3;    delete plist; // Cleans up memory4�H[wJ[(  ��������See Also�eCJ[/K[S v�����㦷Nq����g������[�������gM������CObList::GetTail, CObList::GetTailPosition, CObList::AddHead, CObList::RemoveHead �ewJ[�K[1>��������y�K[	L["�[CObList::GetHeadPositionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")D/K[	L[(  �8�������CObList::GetHeadPositionQ%�K[ZL[, (�J�r�=���~����POSITION GetHeadPosition() const;)	L[�L[& ��2������4ZL[�L[) "��2�������RemarksnA�L[%M[- *���2���������Gets the position of the head element of this list; Returns�o�L[�M[2 4���2����������A POSITION value that can be used for iteration or object pointer retrieval; NULL if the list is empty. 4%M[�M[) "��2�������Example(�M["N[% ��0�����q��M[�O[s ����0��㌎N
���	����[�����	��[�����	��(�/���	���>�B����	��V����	���CObList list;POSITION pos;list.AddHead( new CAge( 21 ) );list.AddHead( new CAge( 40 ) ); // List now contains (40, 21)if( ( pos = list.GetHeadPosition()) != NULL ){    ASSERT( *(CAge*) list.GetAt( pos ) == CAge( 40 ) );}4"N[�O[(  ��������See AlsoO �O["�[/ .�@����g��������CObList:�O["�[/K[:GetTailPosition �]�O[��[1�	��������z��[�[��[CObList::GetNextEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")<"�[�[(  �(�������CObList::GetNext�b��[��[? N���r�=���~�����������CObject*& GetNext( POSITION& rPosition );CObject* GetNext( POSITION& rPosition ) const;)�[��[& ��2������K��[�[2 4�2�R�=��~Q�=�����ParameterDescription����[ς[H ^�
�R�=��~�=��������(�/�����rPositionA reference to a POSITION value returned by a previous GetNext, GetHeadPosition, or other member function call. 4�[�[) "��2�������Remarks	�ς[�[a ��Q�2��������������(�/����Qj��������GetNext gets the list element identified by rPosition, then sets rPosition to the POSITION value of the next entry in the list. You can use GetNext in a forward iteration loop if you establish the initial position with a call to GetHeadPosition or Find. You must ensure that your POSITION value represents a valid position in the list. If it is invalid, then the Debug version of the library asserts. ��["�[G \���2����������dž"��������If the retrieved element is the last in the list, then the new value of rPosition is set to NULL. It is possible to remove an element during an iteration. See the example for RemoveAt. Returnsg5�[��[2 4�j�2�����FD@q�����See the return value description for GetHead. 4"�[��[) "��2�������Example(��[�[% ��0������U��[��[m ����0���	㌎N
���	����[�����	��[�����	���(�/���	���㥏Gq���	����   CObList list;   POSITION pos;   list.AddHead( new CAge( 21 ) );   list.AddHead( new CAge( 40 ) ); // List now contains (40, 21)   // Iterate through the list in head-to-tail order   for( pos = list.GetHeadPosition(); pos != NULL; )   {#ifdef _DEBUG       afxDump << list.GetNext( pos ) << "\n";#endif   }V1�[��[% �b������The results from this program are as follows: '��[$�[$ ������N(��[r�[& �P�0���	���a CAge at $479C 40a CAge at $46C0 214$�[��[(  ��������See Also�~r�[��[_ �������9eC�����(�/����g������WJq����FD@q������CObList::Find, CObList::GetHeadPosition, CObList::GetTailPosition, CObList::GetPrev,  CObList::GetHead �]��[�[1P	��������{�[M�[i�[CObList::GetPrevEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")<��[M�[(  �(�������CObList::GetPrev�b�[�[? N���r�=���~�����������CObject*& GetPrev( POSITION& rPosition );CObject* GetPrev( POSITION& rPosition ) const;)M�[�[& ��2������K�[b�[2 4�2�R�=��~Q�=�����ParameterDescription�p�[
�[; F���R�=��~�=���������rPositionA reference to a POSITION value returned by a previous GetPrev or other member function call. 4b�[A�[) "��2�������Remarks
�
�[N�[a ��Y�2��������������g������Qj��������GetPrev gets the list element identified by rPosition, then sets rPosition to the POSITION value of the previous entry in the list. You can use GetPrev in a reverse iteration loop if you establish the initial position with a call to GetTailPosition or Find. You must ensure that your POSITION value represents a valid position in the list. If it is invalid, then the Debug version of the library asserts. �tA�[�[9 B���2�������������If the retrieved element is the first in the list, then the new value of rPosition is set to NULL. ReturnsN�[�[��[g5N�[s�[2 4�j�2�����FD@q�����See the return value description for GetHead. 4�[��[) "��2�������Example(s�[��[% ��0������Q��[��[m ����0���	㌎N
���	����[�����	��[�����	���g�����	����WJq���	����   CObList list;   POSITION pos;   list.AddHead( new CAge(21) );   list.AddHead( new CAge(40) ); // List now contains (40, 21)   // Iterate through the list in tail-to-head order   for( pos = list.GetTailPosition(); pos != NULL; )   {#ifdef _DEBUG       afxDump << list.GetPrev( pos ) << "\n";#endif   }V1��[��[% �b������The results from this program are as follows: '��[
�[$ ������N(��[X�[& �P�0���	���a CAge at $421C 21a CAge at $421C 404
�[��[(  ��������See Also�~X�[i�[_ �������9eC�����g������(�/���㥏Gq����FD@q������CObList::Find, CObList::GetTailPosition, CObList::GetHeadPosition, CObList::GetNext,  CObList::GetHead �]��[��[1��������|��[3�[�[CObList::GetTailEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")<i�[3�[(  �(�������CObList::GetTailg4��[��[3 6�h�r�=���~�������CObject*& GetTail();CObject* GetTail() const;)3�[��[& ��2������4��[��[) "��2�������Remarksd��[[�[G \�;�2����������<uڀ�������Gets the CObject pointer that represents the tail element of this list. You must ensure that the list is not empty before calling GetTail. If the list is empty, then the Debug version of the library asserts. Use IsEmpty to verify that the list contains elements. Returnsg5��[��[2 4�j�2�����FD@q�����See the return value description for GetHead. 4[�[��[) "��2�������Example(��[�[% ��0��������[4�[c ��g�0��㌎N
���	���[�����	��[�����	��>�B����	㦷Nq���	��CObList list;list.AddHead( new CAge( 21 ) );list.AddHead( new CAge( 40 ) ); // List now contains (40, 21)ASSERT( *(CAge*) list.GetTail() == CAge( 21 ) );4�[h�[(  ��������See Also�]4�[�[S v������eΖ�����[�������gM����FD@q������CObList::AddTail, CObList::AddHead, CObList::RemoveHead, CObList::GetHead �eh�[��[1���������}��[��[E�[CObList::GetTailPositionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")D�[��[(  �8�������CObList::GetTailPositionQ%��[C�[, (�J�r�=���~����POSITION GetTailPosition() const;)��[l�[& ��2������4C�[��[) "��2�������Remarks�^l�[1�[3 6���2�����������Gets the position of the tail element of this list; NULL if the list is empty. Returns�o��[��[2 4���2����������A POSITION value that can be used for iteration or object pointer retrieval; NULL if the list is empty. 41�[�[) "��2�������Example(��[.�[% ��0�����r��[��[s ����0��㌎N
���	����[�����	��[�����	��g�����	���>�B����	��V����	���CObList list;POSITION pos;list.AddHead( new CAge( 21 ) );list.AddHead( new CAge( 40 ) ); // List now contains (40, 21)if( ( pos = list.GetTailPosition() ) != NULL ){    ASSERT( *(CAge*) list.GetAt( pos ) == CAge( 21 ) );}4.�[��[(  ��������See Alsoq6��[E�[; F�l����(�/���㦷Nq������CObList::GetHeadPosition, CObList::GetTail �a��[��[1��������~��[#\\CObList::InsertAfterEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")@E�[#\(  �0���������[#\E�[CObList::InsertAfter�d��[�\? N���r�=���~�����������POSITION InsertAfter( POSITION position, CObject* newElement )throw ( CMemoryException );)#\�\& ��2������K�\:\2 4�2�R�A��~Q�A�����ParameterDescription��\J\b ��]�R�A��~�A�����㥏Gq����WJq����Qj���������positionA POSITION value returned by a previous GetNext, GetPrev, or Find member function call. newElementThe object pointer to be added to this list. 4:\~\) "��2�������Remarks�YJ\\- *���2���������Adds an element to this list "after" the element at the specified position. Example(~\,\% ��0������\2\� ؀�0���	㌎N
���	����[�����	��[�����	��(�/���	���c{�����	����Ƀ����	��c{�����	��   CObList list;   POSITION pos1, pos2;   list.AddHead( new CAge( 21 ) );   list.AddHead( new CAge( 40 ) ); // List now contains (40, 21)   if( ( pos1 = list.GetHeadPosition() ) != NULL )   {       pos2 = list.InsertAfter( pos1, new CAge( 65 ) );   }#ifdef _DEBUG   afxDump.SetDepth( 1 );   afxDump << "InsertAfter example: " << &list << "\n";.	,\`\% ��0���	��#endifV12\�\% �b������The results from this program are as follows: '`\�\$ �������j�\o\(  ���0���	�����InsertAfter example: A CObList with 3 elementsa CAge at $4A44 40a CAge at $4A64 65a CAge at $4968 214�\�\(  ��������See Alsok0o\\; F�`����9eC������JV������CObList::Find, CObList::InsertBefore �b�\�\1����������\�\`\CObList::InsertBeforeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")A\�\(  �2�������CObList::InsertBefore�e�\�\? N���r�=���~�����������POSITION InsertBefore( POSITION position, CObject* newElement )throw ( CMemoryException );)�\�\& ��2������K�\�\2 4�2�R�A��~Q�A�����ParameterDescription��\

\b ��]�R�A��~�A�����㥏Gq����WJq����Qj���������positionA POSITION value returned by a previous GetNext, GetPrev, or Find member function call. newElementThe object pointer to be added to this list. 4�\>
\) "��2�������Remarks�Z

\�
\- *���2���������Adds an element to this list "before" the element at the specified position. Returns�o>
\f\2 4���2����������A POSITION value that can be used for iteration or object pointer retrieval; NULL if the list is empty. 4�
\�\) "��2�������Example(f\�\% ��0��������\�
\n ���0���	㌎N
���	����[�����	��[�����	��g�����	������Ƀ����	����   CObList list;   POSITION pos1, pos2;   list.AddHead( new CAge( 21 ) );   list.AddHead( new CAge( 40 ) ); // List now contains (40, 21)   if( ( pos1 = list.GetTailPosition() ) != NULL )   {       pos2 = list.InsertBefore( pos1, new CAge( 65 ) );   }#ifdef _DEBUG   afxDump.SetDepth( 1 );   afxDump << "InsertBefore example: " << &list << "\n";#endifV1�\\% �b������The results from this program are as follows: '�
\/\$ �������k\�\(  ���0���	�����InsertBefore example: A CObList with 3 elementsa CAge at $4AE2 40a CAge at $4B02 65a CAge at $49E6 214/\�\(  ��������See Alsoj/�\`\; F�^����9eC�����c{��������CObList::Find, CObList::InsertAfter �]�\@\1����������@\H@\�B\CObList::IsEmptyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")`\@\`\<`\H@\(  �(�������CObList::IsEmptyE@\�@\, (�2�r�=���~����BOOL IsEmpty() const;)H@\�@\& ��2������4�@\�@\) "��2�������Remarksg:�@\QA\- *�t�2���������Indicates if this list contains no elements. Returnsb3�@\�A\/ .�f�2���������TRUE if this list is empty; FALSE otherwise. 4QA\�A\) "��2�������ExampleX&�A\?B\2 4�L�2�����1�������See the example for RemoveAll. 5�A\tB\) "��2�������See AlsoI?B\�B\0 0�2�2����QV�������CObList::GetCount �_tB\MC\1����������MC\�C\H\CObList::RemoveAllEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")?�B\�C\) "�,�2�������CObList::RemoveAllAMC\�C\, (�*�r�=���~����void RemoveAll();)�C\�C\& ��2������4�C\*D\) "��2�������Remarkse*�C\�E\; D�U�2��������������Removes all the elements from this list and frees the associated CObList memory. No error is generated if the list is already empty. When you remove elements from a CObList, you remove the object pointers from the list. It is your responsibility to delete the objects themselves. Example(*D\�E\% ��0�����.��E\�G\� ��0��㌎N
���	�����>�B����	�S9����	��[�����	��[�����	��>�B����	�S9����	��b�o���	��>�B����	�S9����	���CObList list;CAge* pa1;CAge* pa2;ASSERT( list.IsEmpty()); // Yes it islist.AddHead( pa1 = new CAge( 21 ) );list.AddHead( pa2 = new CAge( 40 ) ); // List now contains (40, 21)ASSERT( !list.IsEmpty()); // no it isn'tlist.RemoveAll(); // CAge's aren't destroyedASSERT( list.IsEmpty()); // yes it isdelete pa1;     // Now delete the CAge objects3�E\H\% ��0���	��delete pa2;�^�G\�H\1�����������H\�H\�\CObList::RemoveAtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")=H\�H\(  �*�������CObList::RemoveAt[)�H\?I\2 4�R�r�=���~������void RemoveAt( POSITION position );)�H\hI\& ��2������K?I\�I\2 4�2�R�=��~Q�=�����ParameterDescriptionuFhI\(J\/ .���R�=��~�=�����positionThe position of the element to be removed from the list. 4�I\\J\) "��2�������Remarks�h(J\L\< F���2���������������Removes the specified element from this list. When you remove an element from a CObList, you remove the object pointer from the list. It is your responsibility to delete the objects themselves. You must ensure that your POSITION value represents a valid position in the list. If it is invalid, then the Debug version of the library asserts. Example��\J\�L\9 @�S�2������㥏Gq�����Be careful when removing an element during a list iteration. The following example shows a removal technique that guarantees a good POSITION value for GetNext: (L\
M\% ��0�����I��L\SO\� ��q�0���	㌎N
���	����L
���	���[�����	��[�����	��[�����	��(�/���	��㥏Gq���	����V����	��   CObList list;   POSITION pos1, pos2;   CObject* pa;   list.AddHead( new CAge( 21 ) );   list.AddHead( new CAge( 40 ) );   list.AddHead( new CAge( 65 ) ); // List now contains (65 40, 21)   for( pos1 = list.GetHeadPosition(); ( pos2 = pos1 ) != NULL; )   {       if( *(CAge*) list.GetNext( pos1 ) == CAge( 40 ) )       {           pa = list.GetAt( pos2 ); // Save the old pointer for deletion(�
M\��\Q p���0���	�_�3����	������Ƀ����	��_�3����	���           list.RemoveAt( pos2 );           delete pa; // Deletion avoids memory leakSO\��\H\       }   }#ifdef _DEBUG   afxDump.SetDepth( 1 );   afxDump << "RemoveAt example: " << &list << "\n";#endifV1SO\݀\% �b������The results from this program are as follows: '��\�\$ ������{T݀\�\' ���0���	����RemoveAt example: A CObList with 2 elementsa CAge at $4C1E 65a CAge at $4B22 21�`�\�\1[����������\O�\y�\CObList::RemoveHeadEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")?�\O�\(  �.�������CObList::RemoveHeadF�\��\, (�4�r�=���~����CObject* RemoveHead();)O�\��\& ��2������4��\�\) "��2�������Remarksb!��\T�\A P�C�2��������<uڀ�������Removes the element from the head of the list and returns a pointer to it. You must ensure that the list is not empty before calling RemoveHead. If the list is empty, then the Debug version of the library asserts. Use IsEmpty to verify that the list contains elements. Returnsi=�\��\, (�z�2��������The CObject pointer previously at the head of the list. 4T�\�\) "��2�������Example(��\�\% ��0������C�\܆\� ΀��0��㌎N
���	�����[�����	��[�����	��>�B����	��gM���	��>�B����	�FD@q���	����CObList list;CAge* pa1;CAge* pa2;list.AddHead( pa1 = new CAge( 21 ) );list.AddHead( pa2 = new CAge( 40 ) ); // List now contains (40, 21)ASSERT( *(CAge*) list.RemoveHead() == CAge( 40 ) );  // Old headASSERT( *(CAge*) list.GetHead() == CAge( 21 ) );  // New headdelete pa1;delete pa2;4�\�\(  ��������See Alsoi.܆\y�\; F�\����FD@q����[��������CObList::GetHead, CObList::AddHead �`�\
�\1h���������
�\I�\��\CObList::RemoveTailEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')")?y�\I�\(  �.�������CObList::RemoveTailF
�\��\, (�4�r�=���~����CObject* RemoveTail();)I�\��\& ��2������4��\�\) "��2�������Remarksb!��\N�\A P�C�2��������<uڀ�������Removes the element from the tail of the list and returns a pointer to it. You must ensure that the list is not empty before calling RemoveTail. If the list is empty, then the Debug version of the library asserts. Use IsEmpty to verify that the list contains elements. Returnsc=�\��\& �z�2������A pointer to the object that was at the tail of the list. 4N�\�\) "��2�������Example(��\
�\% ��0������V�\�\� ΀��0��㌎N
���	�����[�����	��[�����	��>�B����	�L�uM���	��>�B����	㦷Nq���	����CObList list;CAge* pa1;CAge* pa2;list.AddHead( pa1 = new CAge( 21 ) );list.AddHead( pa2 = new CAge( 40 ) ); // List now contains (40, 21)ASSERT( *(CAge*) list.RemoveTail() == CAge( 21 ) );  // Old tailASSERT( *(CAge*) list.GetTail() == CAge( 40 ) );  // New taildelete pa1;delete pa2; // Clean up memory4
�\�\(  ��������See Alsoi.�\��\; F�\���㦷Nq����eΖ�������CObList::GetTail, CObList::AddTail �[�\�\1�����������\F�\��\CObList::SetAtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CObList')"):��\F�\(  �$�������CObList::SetAtp8�\��\8 @�p�r�=���~��������void SetAt( POSITION pos, CObject* newElement );)F�\ߎ\& ��2������K��\*�\2 4�2�R�A��~Q�A�����ParameterDescription�pߎ\ݏ\C V���R�A��~�A�������������posThe POSITION of the element to be set. newElementThe CObject pointer to be written to the list. 4*�\�\) "��2����ݏ\�\��\���Remarks��ݏ\��\S t��2���������EW<�������������A variable of type POSITION is a kind of "key" for the list. It is not the same as an index, and you cannot operate on a POSITION value yourself. SetAt writes the CObject pointer to the specified position in the list. You must ensure that your POSITION value represents a valid position in the list. If it is invalid, then the Debug version of the library asserts. Example(�\�\% ��0�����,���\K�\� րQ�0���	㌎N
���	���L
���	����[�����	��[�����	��g�����	����V����	��EW<���	���   CObList list;   CObject* pa;   POSITION pos;   list.AddHead( new CAge( 21 ) );   list.AddHead( new CAge( 40 ) ); // List now contains (40, 21)   if( ( pos = list.GetTailPosition()) != NULL )   {       pa = list.GetAt( pos ); // Save the old pointer for deletion       list.SetAt( pos, new CAge( 65 ) );  // Replace the tail element       delete pa;  // Deletion avoids memory leak�p�\��\A R���0���	���Ƀ����	��EW<���	���   }#ifdef _DEBUG   afxDump.SetDepth( 1 );   afxDump << "SetAt example: " << &list << "\n";#endifV1K�\R�\% �b������The results from this program are as follows: '��\y�\$ ������xQR�\��\' ���0���	����SetAt example: A CObList with 2 elementsa CAge at $4D98 40a CAge at $4DB8 654y�\%�\(  ��������See Also�U��\��\S v������9eC������{����㥏Gq����WJq������CObList::Find, CObList::GetAt, CObList::GetNext, CObList::GetPrev �o%�\m�\1P
���������m�\��\�]class CPtrArray : public CObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")L$��\��\(  �H�������class CPtrArray : public CObject9m�\��\* $����R�����Description�x��\��\W |�����������������������������The CPtrArray class supports arrays of void pointers. The member functions of CPtrArray are similar to the member functions of class CObArray Because of this similarity, you can use the CObArray reference documentation for member function specifics. Wherever you see a CObject pointer as a function parameter or return value, substitute a pointer to void. '��\��\$ ������W2��\?�\% �d�0���	��CObject* CObArray::GetAt( int <nIndex> ) const;C��\��\% �<������for example, translates to '?�\��\$ ������U0��\��\% �`�0���	��void* CPtrArray::GetAt( int <nIndex> ) const;���\�\J b�{������Uk����������������CPtrArray incorporates the IMPLEMENT_DYNAMIC macro to support run-time type access and dumping to a CDumpContext object. If you need a dump of individual pointer array elements, you must set the depth of the dump context to 1 or greater. Pointer arrays may not be serialized. When a pointer array is deleted, or when its elements are removed, only the pointers are removed, not the entities they reference. #include <afxcoll.h> ;��\@�\) "�$�2�������Public MembersE�\��\) "�8�2�������Construction/Destruction�l@�\:�\I b���R�I��~�I�e������g�%��������CPtrArrayConstructs an empty array for void pointers. ~CPtrArrayDestroys a CPtrArray object. 3
��\m�\) "��2�������Bounds�:�\p�\R r�c�R����~���|�������+�M������h�������GetSizeGets number of elements in this array. GetUpperBoundReturns the largest valid index. SetSizeSets the number of elements to be contained in this array. 7m�\��\) "��2�������Operations��p�\w]D V��R�U��~�U�U�>`��������U8������FreeExtraFrees a��\w]��\ll unused memory above the current upper bound. RemoveAllRemoves all the elements from this array. ;��\�]) "�$�2�������Element Access �w]�]R r���R�G��~�G�&�[�������r�ͥ������t9\�������GetAtReturns the value at a given index. SetAtSets the value for a given index; array not allowed to grow. ElementAtReturns a temporary reference to the element pointer within the array. >�]]) "�*�2�������Growing the Array���]�]D V�E�R�G��~�G��&�i������΍)&������SetAtGrowSets the value for a given index, growing the array if necessary. AddAdds an element to the end of the array; grows the array if necessary. >]4]) "�*�2�������Insertion/Removal���]
]D V�+�R�I��~�I��܀�����6eO������InsertAtInserts an element (or all the elements in another array) at a specified index. RemoveAtRemoves an element at a specific index. 6
4]C]) "��2�������OperatorsxC
]�]5 :���R�G��~�G�ʅ?�������operator []Sets or gets the element at the specified index. �nC]Z]1o���������Z]�]4E]class CPtrList : public CObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")K#�]�](  �F�������class CPtrList : public CObject9Z]�]* $����R�����Description�s�]�]W |�������������㌎N
�����������The CPtrList class supports lists of void pointers. The member functions of CPtrList are similar to the member functions of class CObList Because of this similarity, you can use the CObList reference documentation for member function specifics. Wherever you see a CObject pointer as a function parameter or return value, substitute a pointer to void. '�]�]$ ������K&�]]% �L�0���	��CObject*& CObList::GetHead() const;C�]]]% �<������for example, translates to ']�]$ ������I$]]�]% �H�0���	��void*& CPtrList::GetHead() const;
��]�
]P n�u������Uk������������������CPtrList incorporates the IMPLEMENT_DYNAMIC macro to support run-time type access and dumping to a CDumpContext object. If need a dump of individual pointer list elements, you must set the depth of the dump context to 1 or greater. Pointer lists may not be serialized. When a CPtrList object is deleted, or when its elements are removed, only the pointers are removed, not the entities they reference. #include <afxcoll.h> ;�]]) "�$�2�������Public MembersE�
]W]) "�8�2�������Construction/Destruction�j]]O n���R����đ��������H�Wˀ�������CPtrListConstructs an empty list for void pointers. ~CPtrListDestroys a CPtrList object. =W]M]) "�(�2�������Head/Tail Access��]
]D V��R����FD@q�����㦷Nq������GetHeadReturns the head element of the list (cannot be empty). GetTailReturns the tail element of the list (cannot be empty). 7M]S
]) "��2�������Operations�
]V]n ��+�R����~����gM������L�uM������[��������e�������1��������RemoveHeadRemoves the element from the head of the list. RemoveTailRemoves the element from the tail of the list. AddHeadAdds an element (or all the elements in another list) to the head of the list (makes a new head). AddTailAdds an element (or all the elements in another list) to the tail of the list (makes a new tail). RemoveAllRemoves all the elements from this list. 6
S
]�]) "��2�������Iteration_�V]�@]` ����R�ÁY~���(�/������g�������㥏Gq������WJq������GetHeadPosition�]�@]�]Returns the position of the head element of the list. GetTailPositionReturns the position of the tail element of the list. GetNextGets the next element for iterating. GetPrevGets the previous element for iterating. C�]:A]) "�4�2�������Retrieval/Modification���@]7B]R r�W�R�I��~�I��{�������=|�������dž"������GetAtGets the element at a given position. SetAtSets the element at a given position. RemoveAtRemoves an element from this list, specified by position. 6
:A]mB]) "��2�������Insertion��7B]2C]D V��R�o��~�o��JV������c{��������InsertBeforeInserts a new element before a given position. InsertAfterInserts a new element after a given position. 6
mB]hC]) "��2�������Searching��2C]CD]D V�/�R�C��~�C�9eC�������I��ɀ�����FindGets the position of an element specified by pointer value. FindIndexGets the position of an element specified by a zero-based index. 3
hC]vD]) "��2�������Status�{CD]4E]C V���R���~��QV�������<uڀ�����GetCountReturns the number of elements in this list. IsEmptyTests for the empty list condition (no elements). �gvD]�E]1	����������E]F]�G]class CResourceExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_009')")D4E]F](  �8�������class CResourceException9�E]IF]* $����R�����Description��F]/G]3 4�g�����������A CResourceException object is generated when Windows cannot find or allocate a requested resource. No further qualification is necessary or possible. #include <afxwin.h> ;IF]jG]) "�$�2�������Public Members~C/G]�G]; F���R��~���Ҁ�������CResourceExceptionConstructs a CResourceException object. �~jG]�H]1-����������H]�H]�J]CResourceException::CResourceExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CResourceException')")R*�G]�H](  �T�������CResourceException::CResourceExceptionE�H].I], (�2�r�=���~����CResourceException();)�H]WI]& ��2������4.I]�I]) "��2�������Remarks��WI]nJ]A P�E�2����������ǀ�������Constructs a CResourceException object. Do not use this constructor directly, but rather call the global function AfxThrowResourceException. See Alsow;�I]�J]< H�v�2�����$������ǀ�����Exception Processing, AfxThrowResourceException �_nJ]uK]1���������uK]�K]c�]class CStdioFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_007')")=�J]�K]) "�(�2�������class CStdioFile9uK]�K]* $����R�����Description��K]�M]9 @���������������A CStdioFile object represents a C run-time stream file as opened by the fopen function. Stream files are buffered and can be opened in either text mode (the default) or binary mode. Text mode provides special processing for carriage return-linefeed pairs. When you write a newline character (0x0A) to a text-mode CStdioFile object, the byte pair (0x0A, 0x0D) is sent to the file. When you read, the byte pair (0x0A, 0x0D) is translated to a single 0x0A byte. =�K]7N](  �*�������#include <afx.h> 5�M]lN]) "��2�������Comments{I7N]�N]2 4���2����������The following CFile functions are not implemented for CStdioFile. QlN]8O]> L�(�R��2�h��"�����z�����Duplicate Q�N]�O]> L�(�R��2�h��"�����������LockRange S8O]�O]> L�,�R��2�h��"���"��Ԁ����UnlockRange �[�O]t�]1 2��������O]t�]�J]�����If you call these functions on a CStdioFile, you will get a CNotSupportedException. ;�O]��]) "�$�2�������Public Members9t�]�]) "� �2�������Data MembersyD��]a�]5 :���R�O��~�O����
������m_pStreamA data member containing a pointer to an open file. E�]��]) "�8�2�������Construction/Destruction��a�]��]J b�/�R�O��~�O�@����������Lz�������CStdioFileConstructs a CStdioFile object from a path or file pointer. ~CStdioFileDestroys the object and closes the file if it is open. <��]Â]) "�&�2�������Text Read/Write�]��]c�]C V���R�O��~�O�=�71������~��b������ReadStringReads a single line of text. WriteStringWrites a single line of text. �fÂ]��]16
�����������]<�]A�]CStdioFile::CStdioFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CStdioFile')")Bc�]<�](  �4�������CStdioFile::CStdioFile����]�]T v��r�=���~�������������������CStdioFile();CStdioFile( FILE* pOpenStream );CStdioFile( const char *pszFileName, UINT nOpenFlags )throw( CFileException );)<�]G�]& ��2������K�]��]2 4�2�R�a��~Q�a�����ParameterDescription�/G�]%�]d ��_�R�a��~�a�������������������㰄�����pOpenStreamSpecifies the file pointer returned by a call to the C run-time function fopen. pszFileNameSpecifies a string that is the path to the desired file. The path can be relative or absolute. nOpenFlagsSharing and access mode. Specifies the action to take when the file is opened. You can combine options by using the bitwise-OR ( | ) operator. One access permission and a text-binary specifier are required; the create and noInherit modes are optional. See CFile::CFile for a list of mode options. The share flags do not apply. 4��]Y�]) "��2�������Remarks�%�]s�]M h���2��������������������The default version of the constructor works in conjunction with the CFile::Open member function to test errors. The one-parameter version constructs a CStdioFile object from a pointer to a file that is already open. Allowed pointer values include the predefined input/output file pointers stdin, stdout, or stderr. The two-parameter version constructs a CStdioFile object and opens the corresponding operating-system file with the given path. �PY�]�]0 0���2����������CFileException is thrown if the file cannot be opened or created. Example(s�]�]% ��0�����:��]U�]� (��0���	��8k���	��������	������	������	��������8k���	����	���	���8k���	�������	������	������	��char* pFileName = "test.dat";CStdioFile f1;if( !f1.Open( pFileName,      CFile::modeCreate | CFile::modeWrite | CFile::typeText ) ) {   #ifdef _DEBUG      afxDump << "Unable to open file" << "\n";   #endif   exit( 1 );}CStdioFile f2( stdout );TRY{    CStdioFile f3( pFileName,      CFile::modeCreate | CFile::modeWrite | CFile::typeText );���]A�]Q p�7�0���	��3�����	�T�퓀��	��������!�R���	��}CATCH( CFileException, e ){    #ifdef _DEBUG       afxDump << "File could not be opened " << e->m_cause << "\n";    #endif}END_CATCH�gU�]َ]1S���������َ]�]C�]CStdioFile::~CStdioFileEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CStdioFile')")CA�]�](  �6�������CStdioFile::~CStdioFileFَ]b�], (�4�r�=���~����virtual ~CStdioFile();)�]��]& ��2������4b�]��]) "��2�������Remarksx?��]C�]9 @��2������������Usually��]C�]A�], this destructor closes the operating-system file associated with the CStdioFile object. However, if the CStdioFile object was constructed by passing in a handle to an opened file using CStdioFile( int ), the operating-system file will not be closed. You must close the operating-system file yourself. �f��]��]1 �����������]�]�]CStdioFile::ReadStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CStdioFile')")CC�]�]) "�4�2�������CStdioFile::ReadString�\��]��]? N���r�=���~�����������virtual char FAR* ReadString( char FAR* lpsz, UINT nMax )throw( CFileException );)�]��]& ��2������K��],�]2 4�2�R�=��~Q�=�����ParameterDescription���]E�]> J���R�=��~�=�����������lpszSpecifies a pointer to a user-supplied buffer that will receive a null-terminated text string. nMaxSpecifies the maximum number of characters to read. Should be one less than the size of the lpsz buffer. 4,�]y�]) "��2�������Remarks�E�]��]F Z���2������������U�A�����Reads text data into a buffer, up to a limit of nMax-1 characters, from the file associated with the CStdioFile object. Reading is stopped by a carriage return-linefeed pair. If, in that case, fewer than nMax-1 characters have been read, a newline character is stored in the buffer. A null character ('\0') is appended in either case. CFile::Read is also available for text-mode input, but it does not terminate on a carriage return-linefeed pair. 9y�]��]) "� �2�������Return Value�b��][�]3 6���2�����������A pointer to the buffer containing the text data; NULL if end-of-file was reached. Example(��]��]% ��0������I[�]�]@ P���0���	�8k���	����=�71���	��extern CStdioFile f;char buf[100];f.ReadString( buf, 100 );�g��]��]1@�����������]��]��]CStdioFile::WriteStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CStdioFile')")C�]��](  �6�������CStdioFile::WriteString�Q��]q�]9 B���r�=���~���������virtual void WriteString( const char FAR* lpsz )throw( CFileException );)��]��]& ��2������Kq�]��]2 4�2�R�=��~Q�=�����ParameterDescription�S��]g�]/ .���R�=��~�=�����lpszSpecifies a pointer to a buffer containing a null-terminated text string. 4��]��]) "��2�������Remarksm&g�]�]G \�M�2��������������j@�����Writes data from a buffer to the file associated with the CStdioFile object. The terminating null character ('\0') is not written to the file. A newline character is written as a carriage return-linefeed pair. WriteString throws an exception in response to several conditions, including the disk-full condition. This is a text-oriented write function available only to CStdioFile and its descendents. CFile::Write is also available, but rather than terminating on a null character, it writes the requested number of bytes to the file. 4��]<�]) "��2�������Example(�]d�]% ��0������R<�]��]@ P���0���	�8k���	����~��b���	��extern CStdioFile f;char buf[] = "test string";f.WriteString( buf );�ed�]��]1������������]��]h^CStdioFile::m_pStreamEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CStdioFile')")A��]��](  �2�������CStdioFile::m_pStream4
��]�]* $����R�����Syntax=��]>�](  �*�������FILE* m_pStream; 4�]r�]) "��2�������Remarks��>�]h^9 @�c�2������������The m_pStream data member is the pointer to an open file as returned by the C run-r�]h^��]time function fopen. It is NULL if the file has never been opened or has been closed. �\r�]�^1����������^/^�K^class CStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_011')"):h^/^) "�"�2�������class CString9�^h^* $����R�����Description��/^N^> J�Q��������������A CString object consists of a variable-length sequence of characters. The CString class provides a variety of functions and operators that manipulate CString objects using a syntax similar to that of Basic. Concatenation and comparison operators, together with simplified memory management, make CString objects easier to use than ordinary character arrays. The increased processing overhead is not significant. a#h^�^> L�H�R��2�h��"����v�������CString Exception Cleanup `"N^^> L�F�R��2�h��"���΃�+�����CString Argument Passing 4�^C^(  ��������Comments|K^�^1 2������������The maximum size of a CString object is MAXINT (32,767) characters. @�C^�^Q p������������������	��	���The const char* operator gives direct access to the characters in a CString object, which makes it look like a C-language character array. Unlike a character array, however, the CString class has a built-in memory-allocation capability. This allows string objects to grow as a result of concatenation operations. No attempt is made to "fold" CString objects (if you make two CString objects containing Chicago, for example, the characters in Chicago are stored in two places). �W�^�	^| ƀ�������������������������73��������������The CString class is not implemented as a Microsoft Foundation collection class, although CString objects can certainly be stored as elements in collections. The overloaded const char* conversion operator allows CString objects to be freely substituted for character pointers in function calls. The CString( const char* psz ) constructor allows character pointers to be substituted for CString objects. Use the GetBuffer and ReleaseBuffer member functions when you need to directly access a CString as a nonconstant pointer to char (char* instead of a const char*). �=�^R^C T�{�����������������CString objects follow "value semantics". A CString object represents a unique value. Think of a CString as an actual string not as a pointer to a string. Where possible, allocate CString objects on the frame rather than on the heap. This saves memory and simplifies parameter passing. #include <afx.h> ;�	^�^) "�$�2�������Public MembersER^�^) "�8�2�������Construction/Destruction�g�^�^O n���R�����K����������4���������CStringConstructs CString objects in various ways. ~CStringDestroys a CString object. C�^�^) "�4�2�������The String as an ArrayN��^^� �e�R�#��}�#��U!a��������=���������b6g������5�g������э�������j������*э���������GetLengthReturns the number of characters in a CString object. IsEmptyTests whether the length of a CString object is 0. EmptyForces a string to have 0 length. GetAtReturns the character at a given position. operator []Returns the character at a given position. SetAtSets a character at a given position. operator const char* ()Directly accesses characters stored in a CString object. E�^^^) "�8�2�������Assignment/Concatenation$�^�@^X ~���R�G��~�G�)э���������э�������э�������operator =Assigns a new value to a CString object. operator +^^�@^h^Concatenates two strings and returns a new string. operator +=Concatenates a new string to the end of an existing string. 7^^�@^) "��2�������Comparisons�@^8B^` ��'�R���#~���э���������"���������P������&�門�����operators ==, <, etc.Comparison operators (ASCII, case sensitive). CompareCompares two strings (ASCII, case sensitive). CompareNoCaseCompares two strings (ASCII, case insensitive). CollateCompares two strings with proper language-dependent ordering. 7�@^oB^) "��2�������Extraction5�8B^�D^� �G�R���{~���ر>Ā����ر>Ā����K��������K��������dp�i�����dp�i������0�Ҁ������w-7������MidExtracts the middle part of a string (like the Basic MID$ command). LeftExtracts the left part of a string (like the Basic LEFT$ command). RightExtracts the right part of a string (like the Basic RIGHT$ command). SpanIncludingExtracts a substring that contains only the characters in a set. SpanExcludingExtracts a substring that contains only the characters not in a set. >oB^�D^) "�*�2�������Other Conversions2��D^F^R r���R�{��~�{�tN��������7ʺ������㬿�2������MakeUpperConverts all the characters in this string to uppercase characters. MakeLowerConverts all the characters in this string to lowercase characters. MakeReverseReverses the characters in this string. 6
�D^JF^) "��2�������Searching"�F^lG^R r���R�q��~�q�c�������3ϦG������HY�������FindFinds a character or substring inside a larger string. ReverseFindFinds a character inside a larger string; starts from the end. FindOneOfFinds the first matching character from a set. 9JF^�G^) "� �2�������Archive/Dump��lG^H^P n��R�;��~�;�э���������э���������operator <<Inserts a CString object to an archive or dump context. operator >>Extracts a CString object from an archive. :�G^�H^) "�"�2�������Buffer AccesseH^J^d ���R��/~���B����������2Ѿu���������73���������GetBufferReturns a pointer to the characters in the CString. GetBufferSetLengthReturns a pointer to the characters in the CString, truncating to the specified length. ReleaseBufferYields control of the buffer returned by GetBuffer. =�H^[J^) "�(�2�������Windows-SpecificiJ^�K^X ~�#�R�e��~�e�{�����������-��������S������LoadStringLoads an existing CString object from a Windows resource. AnsiToOemMakes an in-place conversion from the ANSI character set to the OEM character set. OemToAnsiMakes an in-place conversion from the OEM character set to the ANSI character set. �_[J^TL^1���������TL^�L^��^CString::AnsiToOemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")>�K^�L^(  �,�������CString::AnsiToOemATL^�L^, (�*�r�=���~����void AnsiToOem();)�L^�L^& ��2������4�L^0M^) "��2�������Remarks���L^O^A P�#�2����������������Converts all the characters in this CString object from the ANSI character set to the OEM character set. See the IBM PC Extended Character Set table and the ANSI table in the Microsoft Windows Programmer's Reference. This function is available only in the Windows compiled version of the Microsoft Foundation Class Library, and it is declared in AFX.H only if _WINDOWS is defined. Example(0M^*O^% ��0�������O^�^I `��0���x�
1���	����-���	��>�B����	��CString s( '\265' );  // Octal ANSI code for '1/2's.AnsiToOem();ASSERT( s == "\253" ); // Octal oem code for '1/2'*O^�^�K^4*O^@�^(  ��������See AlsoI�^��^/ .�4������S������CString::OemToAnsi �]@�^�^1Z����������^S�^|�^CString::CollateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")<��^S�^(  �(�������CString::Collate]+�^��^2 4�V�r�=���~������int Collate( const char* psz ) const;)S�^ف^& ��2������K��^$�^2 4�2�R�=��~Q�=�����ParameterDescription].ف^��^/ .�\�R�=��~�=�����pszThe other string used for comparison. 4$�^��^) "��2�������RemarksV��^�^G \��2���������"������������Performs a locale-specific comparison of two strings; uses the run-time function strcoll. Compare performs a faster, ASCII-only comparison. A CString object can be used as the argument because the class provides the appropriate conversion operator. Returns�~��^΄^E Z���R���~����������������0The strings are identical. -1This CString object is less than psz. 1This CString object is greater than psz. 3�^�^(  ��������Example'΄^(�^$ �������]�^م^T x���0���x�
1���	��x�
1���	��>�B����	�&�門��	��CString s1( "abc" );CString s2( "abd" );ASSERT( s1.Collate( s2 ) == -1 );4(�^
�^(  ��������See Alsoo4م^|�^; F�h������"�������P������CString::Compare, CString::CompareNoCase �]
�^
�^1����������
�^F�^�^CString::CompareEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")<|�^F�^(  �(�������CString::Compare]+
�^��^2 4�V�r�=���~������int Compare( const char* psz ) const;)F�^̇^& ��2������K��^�^2 4�2�R�=��~Q�=�����ParameterDescription].̇^t�^/ .�\�R�=��~�=�����pszThe other string used for comparison. 4�^��^) "��2�������Remarks�t�^��^F Z���2���������&�門�������Compares this CString object with another string, character by character; uses the run-time function strcmp. If you need a language-specific comparison, use the Collate member function. Returns�~��^��^E Z���R���~����������������0The strings are identical. -1This CString object is less than psz. 1This CString object is greater than psz. 3��^��^(  ��������Example'��^ڊ^$ ������h���^B�^� ��0���x�
1���	��x�
1���	��>�B����	���"����	���"����	�x�
1���	��>�B����	���"����	���"����	��CString s1( "abc" );CString s2( "abd" );ASSERT( s1.Compare( s2 ) == -1 ); // Compare with another CStringASSERT( s1.Compare( "abe" ) == -1 ); // Compare with a char * string4ڊ^v�^(  ��������See Alsoo4B�^�^; F�h������P����&�門�����CString::CompareNoCase, CString::Collate �cv�^y�^1����������y�^��^��^CString::CompareNoCaseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")B�^��^(  �4�������CString::CompareNoCasec1y�^�^2 4�b�r�=���~������int CompareNoCase( const char* psz ) const;)��^G�^& ��2������K�^��^2 4�2�R�=��~Q�=�����ParameterDescription].G�^�^/ .�\�R�=��~�=�����pszThe other string used for comparison. 4��^#�^) "��2�������Remarksv/�^��^G \�_�2����������&�門�������Compares this CString object with another string, character by character; uses the run-time function stricmp. The algorithm for deciding case app#�^��^�^lies only to ASCII characters: ('A' == 'a' -> 'Z' == 'z'). If you need a language-specific comparison, use the Collate member function. Returns��#�^��^F Z�]�R���~����������������0The strings are identical (ignoring case). -1This CString object is less than psz (ignoring case). 1This CString object is greater than psz (ignoring case). 3��^��^(  ��������Example'��^��^$ ������h���^[�^� ��0���x�
1���	��x�
1���	��>�B����	���P���	���"����	�x�
1���	��>�B����	���"����	���"����	��CString s1( "abc" );CString s2( "ABD" );ASSERT( s1.CompareNoCase( s2 ) == -1 ); // Compare with a CStringASSERT( s1.Compare( "ABE" ) == -1 ); // Compare with a char * string4��^��^(  ��������See Alsoi.[�^��^; F�\������"�����&�門�����CString::Compare, CString::Collate �]��^��^1�
�����������^��^��^CString::CStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")<��^��^(  �(�������CString::CStringD���^�^� .�)�r�=���~�������������������������������������������������������CString();CString(const CString& stringSrc )throw( CMemoryException );CString( const char* psz )throw( CMemoryException );CString( char ch, int nRepeat = 1 )throw( CMemoryException );CString( const char* pch, int nLength )throw( CMemoryException );CString( const char FAR* lpsz )throw( CMemoryException );CString( const char FAR* lpch, int nLength )J��^P�^, (�<�r�=���~����throw( CMemoryException );)�^y�^& ��2������KP�^��^2 4�2�R�=��~Q�=�����ParameterDescription�y�^��^� Ҁ�R�=��~�=���������������������������������������stringSrcAn existing CString object to be copied into this CString object. pszA null-terminated string to be copied into this CString object. chA single character to be repeated nRepeat times. nRepeatThe repeat count for ch. pchA pointer to an array of characters of length nLength, not null-terminated. nLengthA count of the number of characters in pch. ���^��^= J���R�=��~�=�����������lpszA far pointer to a null-terminated ASCII string. lpchA far pointer to an array of characters of length nLength. 4��^��^) "��2�������Remarks����^��^B R�
�2�����������������Each of these constructors initializes a new CString object with the specified data. Because the constructors copy the input data into new allocated storage, you should be aware that memory exceptions may result. Note that some of these constructors act as "conversion functions." This allows you to substitute, for example, a char* where a CString object is expected. Example(��^��^% ��0�����0���^��^� ��3�0���x�
1���	�b6g���	��x�
1���	��x�
1���	�Y����	��x�
1���	���x�
1���	��x�
1���	���x�
1���	��CString s1;                   // Empty stringCString s2( "cat" );            // From a C string literalCString s3 = s2;              // Copy constructorCString s4( s2 + " " + s3 );    // From a string expressionCString s5( 'x' );              // s5 = "x"CString s6( 'x', 6 );           // s6 = "xxxxxx"CString city = "Philadelphia"; // NOT the assignment operator4��^�^(  ��������See Alsou:��^��^; F�t����)э������v��������CString::operator =, CString Exception Cleanup �^�^$_1W���������$_a_�_CString::~CStringEnableButton("up");ChangeButtonBinding("up", "JI(`mf��^$_��^c10wh.hlp', `CString')")=��^a_(  �*�������CString::~CString;$_�_, (��r�=���~����~CString();)a_�_& ��2������4�_�_) "��2�������Remarks�b�_�_, (���2��������This CString destructor releases allocated memory used to store the string's character data. �[�__1����������_N_�_CString::EmptyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')");�_N_) "�$�2�������CString::Empty=_�_, (�"�r�=���~����void Empty();)N_�_& ��2������4�_�_) "��2�������Remarks�[�_v_3 6���2�����������Makes this CString object an empty string, and frees memory as appropriate. Example(�_�_% ��0������Rv_E_U z���0���x�
1���	��x�
1���	��b6g���	��>�B����	��CString s1( "abc" );CString s2;s1.Empty();ASSERT( s1 == s2 );4�_y_(  ��������See Also�EE_�_; F������=������v��������CString::IsEmpty, "CString Exception Cleanup" on page ??? �Zy_�_1�����������_�__CString::FindEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")9�_�_(  �"�������CString::Find�J�_F_? N���r�=���~�����������int Find( char ch ) const;int Find( const char* pszSub ) const;)�_o_& ��2������KF_�_2 4�2�R�=��~Q�=�����ParameterDescription�No_?_7 >���R�=��~�=���������chA single character to search for. pszSubA substring to search for. 4�_s_) "��2�������Remarks�?_~_: B���2�������������Searches this string for the first match of a substring. The function is overloaded to accept both single characters (similar to the run-time function strchr) and strings (similar to strstr). Returns��s_V	_- (�W�2��������The zero-based index of the first character in this CString object that matches the requested substring or characters; -1 if the substring or character is not found. 4~_�	_) "��2�������Example(V	_�	_% ��0������h�	_z
_` ����0���x�
1���	��>�B����	�Qj���	��>�B����	�Qj���	��CString s( "abcdef" );ASSERT( s.Find( 'c' ) == 2 );ASSERT( s.Find( "de" ) == 3);4�	_�
_(  ��������See Alsoo4z
__; F�h����3ϦG����HY�������CString::ReverseFind, CString::FindOneOf �_�
_�_1e����������_�_+@_CString::FindOneOfEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")>_�_(  �,�������CString::FindOneOff4�_Q_2 4�h�r�=���~������int FindOneOf( const char* pszCharSet ) const;)�_z_& ��2������KQ_�_2 4�2�R�=��~Q�=�����ParameterDescriptioni:z_.
_/ .�t�R�=��~�=�����pszCharSetString containing characters for matching. 4�_b
_) "��2�������Remarks�p.
__3 6���2�����������Searches this string for the first character that matches any character contained in pszCharSet. Returns�ub
_�_, (���2��������The zero-based index of the first character in this string that is also in pszCharSet; -1 if there is no match. 4_�_) "��2�������Example(�__% ��0������^�_�_G ^���0���x�
1���	��>�B����	�HY����	��CString s( "abcdef" );ASSERT( s.FindOneOf( "xd" ) == 3 ); // 'd' is first match4_�_(  ��������See AlsoD�_+@_/ .�*����c��_+@__������CString::Find �[�_�@_1�����������@_�@_�F_CString::GetAtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')"):+@_�@_(  �$�������CString::GetAtW%�@_HA_2 4�J�r�=���~������char GetAt( int nIndex ) const;)�@_qA_& ��2������KHA_�A_2 4�2�R�=��~Q�=�����ParameterDescriptiongqA_#C_N j�3�R�=��~�=��������Pn8��������nIndexZero-based index of the character in the CString object. The nIndex parameter must be greater than or equal to 0 and less than GetLength. The Debug version of the Microsoft Foundation Class Library validates the bounds of nIndex; the Release version will not. 4�A_WC_) "��2�������Remarks;�#C_�D_L f���2��������V�������������You can think of a CString object as an array of characters. The GetAt member function returns a single character specified by an index number. The overloaded subscript ([]) operator is a convenient alias for GetAt. ReturnszNWC_E_, (���2��������A char containing the character at the specified position in the string. 4�D_@E_) "��2�������Example(E_hE_% ��0������A@E_�E_G ^���0���x�
1���	��>�B����	��V����	��CString s( "abcdef" );ASSERT( s.GetAt(2) == 'c' );4hE_$F_(  ��������See Also�H�E_�F_G ^������j�����U!a����э�������CString::SetAt, CString::GetLength, CString::operator [] �_$F_CG_1
���������CG_�G_�_CString::GetBufferEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")>�F_�G_(  �,�������CString::GetBuffer�GCG_H_9 B���r�=���~���������char* GetBuffer( int nMinBufLength )throw( CMemoryException );)�G_*H_& ��2������KH_uH_2 4�2�R�_��~Q�_�����ParameterDescription��*H_0I_6 :��R�_��~�_�������nMinBufLengthThe minimum size of the CString character buffer in bytes. You do not need to allow space for a null terminator. 4uH_dI_) "��2�������RemarksB�0I_�K_q ����2�����������������73�����������73��������Returns a pointer to the internal character buffer for the CString object. The returned pointer to char is not const and thus allows direct modification of CString contents. If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer before using any other CString member functions. The address returned by GetBuffer is invalid after the call to ReleaseBuffer or any other CString operation. �YdI_+L_, (���2��������The buffer memory will be freed automatically when the CString object is destroyed. �G�K_�M_J b���r����������73������73��������Note:If you keep track of the string length yourself, you need not append the terminating null byte. You must, however, specify the final string length when you release the buffer with ReleaseBuffer, or you can pass -1 for the length and ReleaseBuffer will perform a strlen on the buffer to determine its length. 3+L_�M_(  ��������Returns�V�M_pN_+ &����������A char pointer to the object's (usually null-terminated) ASCII character buffer. 3�M_�N_(  ��������Example'pN_�N_$ ������-��N_�_= H���0���	�x�
1���	�������������   CString s;   char* p = s.GetBuffer(10); // Allocate space for 10 characters   s = "abcdefg"; // p is still valid because length of s is 7                  // characters   p[1] = 'B'; // Change 'b' to 'B'#ifdef _DEBUG   afxDump << "char�N_�_�F_* p " << (void*) p << ":" << p << "\n";#endif   char* q = s.GetBuffer(12);  // Get a new, larger buffer   // q is a different address than p, but the string is the same.#ifdef _DEBUG   afxDump << "char* q " << (void*) q << ":" << q << "\n";��N_�_< F���0���	����������x�
1���	���#endif   s += "hij";  // String length is still smaller than 12#ifdef _DEBUG   afxDump << "char* q " << (void*) q << ":" << q << "\n";#endif   s += "klmnop";  // Now it is larger than 12, so the characters                   // Are moved, and q is no longer valid#ifdef _DEBUG   afxDump << "char* q " << (void*) q << ":" << q << "\n";   afxDump << "CString s " << s << "\n"; // s contains                                         // "aBcdefghijklmnop"U#�_f�_2 4�F�0���	���73����	��#endif   s.ReleaseBuffer();4�_��_(  ��������See Alsoz?f�_�_; F�~����2Ѿu�����73�������CString::GetBufferSetLength, CString::ReleaseBuffer �h��_��_1������������_�_��_CString::GetBufferSetLengthEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")G�_�_(  �>�������CString::GetBufferSetLength�M��_z�_9 B���r�=���~���������char* GetBufferSetLength( int nNewLength )throw( CMemoryException );)�_��_& ��2������Kz�_�_2 4�2�R�G��~Q�G�����ParameterDescriptionJ��_m�_5 :���R�G��~�G�������nNewLengthThe exact size of the CString character buffer in bytes. 4�_��_) "��2�������Remarks�m�_��_^ ����2�������������������73��������Returns a pointer to the internal character buffer for the CString object, truncating or growing its length if necessary to exactly match the length specified in nNewLength. The returned pointer to char is not const and thus allows direct modification of CString contents. If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer before using any other CString member functions. ���_ԉ_F Z���2��������73�����������The address returned by GetBuffer is invalid after the call to ReleaseBuffer or any other CString operation. The buffer memory will be freed automatically when the CString object is destroyed. �G��_e�_J b���r����������73������73��������Note:If you keep track of the string length yourself, you need not append the terminating null byte. You must, however, specify the final string length when you release the buffer with ReleaseBuffer, or you can pass -1 for the length and ReleaseBuffer will perform a strlen on the buffer to determine its length. 3ԉ_��_(  ��������Returns�Ve�_�_+ &����������A char pointer to the object's (usually null-terminated) ASCII character buffer. 4��_M�_(  ��������See Alsoq6�_��_; F�l����B�������73�������CString::GetBuffer, CString::ReleaseBuffer �_M�_N�_1����������N�_��_�_CString::GetLengthEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")>��_��_(  �,�������CString::GetLengthFN�_ҍ_, (�4�r�=���~����int GetLength() const;)��_��_& ��2������4ҍ_/�_) "��2�������Remarks�w��_َ_3 6���2�����������Returns a count of the characters in this CString object. The count does not include a null terminator. Example(/�_�_% ��0������Bَ_��_G ^���0���x�
1���	��>�B����	�Pn8����	��CString s( "abcdef" );ASSERT( s.GetLength() == 6 );4�_��_(  ��������See AlsoG��_�_/ .�0����=�������CString::IsEmpty��_�_��_ �]��_��_1�����������_��_��_CString::IsEmptyEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")<�_��_(  �(�������CString::IsEmptyE��_ �_, (�2�r�=���~����BOOL IsEmpty() const;)��_I�_& ��2������4 �_}�_) "��2�������Remarksr?I�_��_3 6�~�2�����������Tests a CString object for the empty condition. ReturnswB}�_f�_5 :���2�����������TRUE if the CString object has 0 length; otherwise FALSE. 4��_��_) "��2�������Example(f�_��_% ��0�����v/��_8�_G ^�^�0���x�
1���	��>�B����	�S9����	��CString s;ASSERT( s.IsEmpty() );4��_l�_(  ��������See AlsoI8�_��_/ .�4�����U!a������CString::GetLength �Zl�_@�_1����������@�_y�_��_CString::LeftEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")9��_y�_(  �"�������CString::Left|C@�_��_9 B���r�=���~���������CString Left( int nCount ) constthrow( CMemoryException );)y�_�_& ��2������K��_i�_2 4�2�R�=��~Q�=�����ParameterDescription�K�_��_5 :���R�=��~�=�������nCountThe number of characters to extract from this CString object. 4i�_�_) "��2�������Remarksy2��_��_G \�e�2������������������Extracts the first (that is, leftmost) nCount characters from this CString object and returns a copy of the extracted substring. If nCount exceeds the string length, then the entire string is extracted. Left is similar to the Basic LEFT$ command (except that indexes are zero-based). ReturnszN�_�_, (���2��������A CString object containing a copy of the specified range of characters. f5��_v�_1 2�j�r������������Note:The returned CString object may be empty. 3�_��_(  ��������Example'v�_��_$ �������B��_Y�_G ^���0���x�
1���	��>�B����	�K������	��CString s( "abcdef" );ASSERT( s.Left(3) == "abc" );4��_��_(  ��������See Alsoc(Y�_��_; F�P����ر>Ā���dp�i������CString::Mid, CString::Right �`��_��_1������������_��_�_CString::LoadStringEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")?��_��_(  �.�������CString::LoadStringw>��_7�_9 B�|�r�=���~���������BOOL LoadString( UINT nID )throw( CMemoryException );)��_`�_& ��2������K7�_��_2 4�2�R�=��~Q�=�����ParameterDescriptionU&`�_�_/ .�L�R�=��~�=�����nIDA Windows string resource ID. 4��_4�_) "��2�������Remarks�N�_��_A P���2����������������Reads a Windows string resource, identified by nID, into an existing CString object. The maximum string size is 255 characters. This function is declared in AFX.H only if _WINDOWS is defined. Its use requires the Windows compiled version of the Microsoft Foundation classes, and it is normally used with AFXWIN.H. Returnsl=4�_/�_/ .�z�2���������TRUE if resource load was successful; otherwise FALSE. 4��_c�_) "��2�������Example(/�_��_% ��0������Rc�_�_? N���0���	��x�
1���	��{����	��#define IDS_FILENOTFOUND 1CString s;s.LoadString( IDS_FILENOTFOUND );�_��_��_1x�����������_`S`CString::MakeLowerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")>�_`(  �,�������CString::MakeLower��_`�_A��_M`, (�*�r�=���~����void MakeLower();)`v`& ��2������4M`�`) "��2�������RemarksvCv` `3 6���2�����������Converts this CString object to a lowercase string. Example(�`H`% ��0������F `�`H `���0���x�
1���	��7ʺ����	��>�B����	��CString s( "ABC" );s.MakeLower();ASSERT( s == "abc" );4H`
`(  ��������See AlsoI�`S`/ .�4����tN��������CString::MakeUpper �a
`�`1����������`%`�`CString::MakeReverseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")@S`%`(  �0�������CString::MakeReverseC�`h`, (�.�r�=���~����void MakeReverse();)%`�`& ��2������4h`�`) "��2�������RemarksL�`D`3 6���2�����������Reverses the order of the characters in this CString object. Example(�`l`% ��0������HD`�`H `���0���x�
1���	�㬿�2���	��>�B����	��CString s( "abc" );s.MakeReverse();ASSERT( s == "cba" );�_l`�`1y����������`�``CString::MakeUpperEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")>�`�`(  �,�������CString::MakeUpperA�``, (�*�r�=���~����void MakeUpper();)�`4`& ��2������4`h`) "��2�������RemarkswD4`�`3 6���2�����������Converts this CString object to an uppercase string. Example(h``% ��0������F�`�`H `���0���x�
1���	��tN�����	��>�B����	��CString s( "abc" );s.MakeUpper();ASSERT( s == "ABC" );4`�`(  ��������See AlsoI�``/ .�4����7ʺ�������CString::MakeLower �Y�`�`1�����������`�``CString::MidEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")8`�`(  � �������CString::Mid���`�	`T v�#�r�=���~�������������������CString Mid( int nFirst ) constthrow( CMemoryException );CString Mid( int nFirst, int nCount ) constthrow( CMemoryException );)�`�	`& ��2������K�	`-
`2 4�2�R�=��~Q�=�����ParameterDescriptionc�	`�`D V�?�R�=��~�=�������������nFirstThe zero-based index of the first character in this CString object that is to be included in the extracted substring. nCountThe number of characters to extract from this CString object. If this parameter is not supplied, then the remainder of the string is extracted. 4-
`�`) "��2�������RemarksY�`
`G \�%�2������������������Extracts a substring of length nCount characters from this CString object, starting at position nFirst (zero-based). The function returns a copy of the extracted substring. Mid is similar to the Basic MID$ command (except that indexes are zero-based). Returns}Q�`�
`, (���2��������A CString object that contains a copy of the specified range of characters. f5
``1 2�j�r������������Note:The returned CString object may be empty. 3�
`3`(  ��������Example'`Z`$ �������F3`�`G ^���0���x�
1���	��>�B����	�ر>Ā��	��CString s( "abcdef" );ASSERT( s.Mid( 2, 3 ) == "cde" );4Z``(  ��������See Alsod)�``; F�R����K�������dp�i������CString::Left, CString::Right �_`@`1���������@`Y@`/D`CString::OemToAnsiEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp`@``', `CString')")>`Y@`(  �,�������CString::OemToAnsiA@`�@`, (�*�r�=���~����void OemToAnsi();)Y@`�@`& ��2������4�@`�@`) "��2�������Remarks���@`�B`A P��2����������������Converts all the characters in this CString object from the OEM character set to the ANSI character set. See the IBM PC Extended Character Set table and the ANSI table in the Microsoft Windows Programmer's Reference. This function is available only in the Windows compiled library of the Microsoft Foundation classes and is declared in AFX.H only if _WINDOWS is defined. Example(�@`�B`% ��0��������B`�C`I `��0���x�
1���	����S���	��>�B����	��CString s( '\253' );  // Octal oem code for '1/2's.OemToAnsi();ASSERT( s == "\265" ); // Octal ANSI code for '1/2'4�B`�C`(  ��������See AlsoI�C`/D`/ .�4������-������CString::AnsiToOem �c�C`�D`1"����������D`E`�J`CString::ReleaseBufferEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")B/D`E`(  �4�������CString::ReleaseBufferb0�D`gE`2 4�`�r�=���~������void ReleaseBuffer( int nNewLength = -1 );)E`�E`& ��2������KgE`�E`2 4�2�R�G��~Q�G�����ParameterDescription��E`�F`6 :���R�G��~�G�������nNewLengthThe new length of the string in characters, not counting a null terminator. If the string is null-terminated, the -1 default value sets the CString size to the current length of the string. 4�E`G`) "��2�������Remarks���F`�H`Z ���2�������������������������Use ReleaseBuffer to end use of a buffer allocated by GetBuffer. If you know that the string in the buffer is null-terminated, you can omit the nNewLength argument. If your string is not null-terminated, then use nNewLength to specify its length. The address returned by GetBuffer is invalid after the call to ReleaseBuffer or any other CString operation. Example(G`I`% ��0�����b��H`yJ`p ����0���x�
1���	����>�B����	�Pn8����	���73����	��>�B����	�Pn8����	��CString s;char* p = s.GetBuffer( 1024 );s = "abc";ASSERT( s.GetLength() == 3 ); // String length = 3s.ReleaseBuffer();  // Surplus memory released, p is now invalidASSERT( s.GetLength() == 3 ); // Length still 34I`�J`(  ��������See AlsoIyJ`�J`/ .�4����B��������CString::GetBuffer �a�J`�K`1�����������K`�K`&�`CString::ReverseFindEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")@�J`�K`(  �0�������CString::ReverseFindY'�K`!L`2 4�N�r�=���~������int ReverseFind( char ch ) const;)�K`JL`& ��2������K!L`�L`2 4�2�R�=��~Q�=�����ParameterDescriptionS$JL`�L`/ .�H�R�=��~�=�����chThe character to search for. 4�L`M`) "��2�������Remarks���L`�M`: B��2�������������Searches this CString object for the last match of a substring. The function is similar to the run-time function strrchr. Returns��M`�N`- (�	�2��������The index of the last character in this CString object that matches the requested character; -1 if the character is not found. 4�M`�N`) "��2�������Example(�N`�N`% ��0������I�N`~O`G ^���0���x�
1���	��>�B����	�3ϦG���	��CString s( "abcabc" );ASSERT( s.ReverseFind( 'b' ) == 4 );4�N`�O`(  ��������See Alsoh-~O`&�`; F�Z����c�����HY�������CString::Find, �O`&�`�J`CString::FindOneOf �[�O`��`1������������`�`i�`CString::RightEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')"):&�`�`(  �$�������CString::Right}D��`i�`9 B���r�=���~���������CString Right( int nCount ) constthrow( CMemoryException );)�`��`& ��2������Ki�`݁`2 4�2�R�=��~Q�=�����ParameterDescription�K��`]�`5 :���R�=��~�=�������nCountThe number of characters to extract from this CString object. 4݁`��`) "��2�������Remarks{4]�`�`G \�i�2������������������Extracts the last (that is, rightmost) nCount characters from this CString object and returns a copy of the extracted substring. If nCount exceeds the string length, then the entire string is extracted. Right is similar to the Basic RIGHT$ command (except that indexes are zero-based). Returns}Q��`��`, (���2��������A CString object that contains a copy of the specified range of characters. f5�`�`1 2�j�r������������Note:The returned CString object may be empty. 3��`"�`(  ��������Example'�`I�`$ �������C"�`Ӆ`G ^���0���x�
1���	��>�B����	�dp�i���	��CString s( "abcdef" );ASSERT( s.Right(3) == "def" );4I�`�`(  ��������See Alsob'Ӆ`i�`; F�N����ر>Ā���K���������CString::Mid, CString::Left �[�`��`1������������`/�`��`CString::SetAtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')"):i�`/�`(  �$�������CString::SetAtb*��`��`8 @�T�r�=���~��������void SetAt( int nIndex, char ch );)/�`��`& ��2������K��`�`2 4�2�R�=��~Q�=�����ParameterDescription�H��`��`V z���R�=��~�=��������Pn8������������nIndexZero-based index of the character in the CString object. The nIndex parameter must be greater than or equal to 0 and less than GetLength. The Debug version of the Microsoft Foundation classes will validate the bounds of nIndex; the Release version will not. chThe character to insert. Must not be '\0'. 4�`׉`) "��2�������RemarksI��` �`F Z��2�������EW<����������You can think of a CString object as an array of characters. The SetAt member function overwrites a single character specified by an index number. SetAt will not enlarge the string if the index exceeds the bounds of the existing string. See Alsol0׉`��`< H�`�2����5�g����э�������CString::GetAt, CString::operator [] �c �` �`16��������� �`c�`��`CString::SpanExcludingEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")C��`c�`) "�4�2�������CString::SpanExcluding�X �`�`9 B���r�=���~���������CString SpanExcluding( const char* pszCharSet ) constthrow( CMemoryException );)c�`�`& ��2������K�`h�`2 4�2�R�=��~Q�=�����ParameterDescriptionk<�`Ӎ`/ .�x�R�=��~�=�����pszCharSetA string interpreted as a set of characters. 4h�`�`) "��2�������Remarksb!Ӎ`i�`A P�C�2����������������Extracts the largest substring that excludes only the characters in the specified set pszCharSet; starts from the first character in this CString object. If the first character of the string is included in the character set, then SpanExcluding returns an empty string. ReturnszN�`�`, (���2��������A copy of the substring that contains only characters not in pszCharSet. i�`�`��`5i�`A�`) "��2�������See AlsoN�`��`0 0�<�2�����0�Ҁ�����CString::SpanIncluding �cA�`#�`1+���������#�`f�``�`CString::SpanIncludingEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")C��`f�`) "�4�2�������CString::SpanIncluding�X#�`��`9 B���r�=���~���������CString SpanIncluding( const char* pszCharSet ) constthrow( CMemoryException );)f�` �`& ��2������K��`k�`2 4�2�R�=��~Q�=�����ParameterDescriptionk< �`��`/ .�x�R�=��~�=�����pszCharSetA string interpreted as a set of characters. 4k�`
�`) "��2�������Remarks]��`g�`A P�9�2����������������Extracts the largest substring that contains only the characters in the specified set pszCharSet; starts from the first character in this CString object. If the first character of the string is not in the character set, then SpanIncluding returns an empty string. ReturnsvJ
�`��`, (���2��������A copy of the substring that contains only characters in pszCharSet. 5g�`�`) "��2�������See AlsoN��``�`0 0�<�2�����w-7������CString::SpanExcluding �`�`��`1������������`1�`��`CString::operator =EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")@`�`1�`) "�.�2�������CString::operator =N���`�`b ����r�=���~�������������������������const CString& operator =( const CString& stringSrc )throw( CMemoryException );const CString& operator =( const char* psz )throw( CMemoryException );const CString& operator =( char ch )throw( CMemoryException );)1�`��`& ��2������4�`��`) "��2�������Remarks����`��`G \�M�2������������������The CString assignment operator (=) reinitializes an existing CString object with new data. If the destination string (that is, the left side) is already large enough to store the new data, no new memory allocation is performed. You should be aware that memory exceptions may occur whenever you use the assignment operator because new storage is often allocated to hold the resulting CString object. Example(��`��`% ��0�����d��`U�`L f�1�0���x�
1���	�b6g���	�x�
1���	�������CString s1, s2;               // Empty CString objectss1 = "cat";                   // s1 = "cat"s2 = s1;                      // s1 and s2 each = "cat"s1 = "the " + s1;             // Or expressionss1 = 'x';                     // Or just individual characters4��`��`(  ��������See AlsoGU�`��`/ .�0�����K��������CString::CString �j��`k�`1���������k�`��`��`CString::operator const char*EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")L$��`��`(  �H�������CString::operator const char* ()N"k�`�`, (�D�r�=���~����operator const char* () const;)��`.�`& ��2������4�`b�`) "��2�������Remarks�z.�`�`; D���2��������������This useful casting operator provides an efficient method to access the null-terminated C string contained in a CString object. No characters are copied; only a pointer is returned. Be careful with this operator. If you change a CString object after you have obtained the character pointer, you may cause a reallocation of memory that invalidates the pointer. ReturnssMb�`��`& ���2������A character pointer if the cast was successful; otherwise a null pointer. �f�`-a1����������-asa9aCString::operators <<, >>EnableButton("up");ChangeButtonBinding("up"��`-a��`, "JI(`mfc10wh.hlp', `CString')")F��`sa) "�:�2�������CString::operators <<, >>�-a�am ��9�r�=���~����������������������������friend CArchive& operator <<( CArchive& ar, const CString& string );throw(CArchiveException);friend CArchive& operator >>( CArchive& ar, CString& string );throw(CArchiveException);friend CDumpContext& operator <<( CDumpContext& dc, const CString& string );)sa%a& ��2������4�aYa) "��2�������Remarks[%a�aG \�)�2������������������The CString insert (<<) operator supports diagnostic dumping and storing to an archive. The extract (>>) operator supports loading from an archive. The CDumpContext operators are valid only in the Debug version of the Microsoft Foundation Class Library. Example(Ya�a% ��0�����]�a9aU x��0���	���ؘ����	��x�
1���	������㇠l���	�����// Operator <<, >> example    extern CArchive ar;    CString s( "abc" ); #ifdef _DEBUG    afxDump << s;  // Prints the value (abc)    afxDump << &s;  // Prints the address #endif    if( ar.IsLoading() )      ar >> s;    else      ar << s;�`�a�a1�����������a	a�aCString::operator +EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")?9a	a(  �.�������CString::operator +#��a,a� �+�r�=���~�����������������������������������������friend CString operator +( const CString& string1, const CString& string2 )throw( CMemoryException );friend CString operator +( const CString& string, char ch )throw( CMemoryException );friend CString operator +( char ch, const CString& string )throw( CMemoryException );friend CString operator +( const CString& string, const char* psz )throw( CMemoryException );�h	a�a? N���r�=���~�����������friend CString operator +( const char* psz, const CString& string )throw( CMemoryException );),a�a& ��2������4�a0	a) "��2�������RemarksD�ata5 8��2������������The + concatenation operator joins two strings and returns a CString object. One of the two argument strings must be a CString object. The other can be a character pointer or a character. You should be aware that memory exceptions may occur whenever you use the concatenation operator since new storage may be allocated to hold temporary data. You must ensure that the maximum length limit is not exceeded. The Debug version of the Microsoft Foundation Class Library asserts when it detects strings that are too long. 40	a�a) "��2�������Returns��ta|a- (�O�2��������A CString object that is the temporary result of the concatenation. This return value makes it possible to combine several concatenations in the same expression. 4�a�a) "��2�������Example(|a�a% ��0�����i��aAat ����0���	�x�
1���	��x�
1���	��>�B����	���x�
1���	��x�
1���	��x�
1���	��   CString s1( "abc" );   CString s2( "def" );   ASSERT( (s1 + s2 ) == "abcdef" );   CString s3;   s3 = CString( "abc" ) + "def" ; // Correct// s3 = "abc" + "def"; // Wrong! One of the arguments must be a CString4�aua(  ��������See AlsoKAa�a/ .�8����э�������CString::operator += �auaRa1����������Ra�a�DaCString::operator +=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")@�a�a(  �0�������CString::operator +=0�Ra�@ab ����r�=���~�������������������������void operat�a�@a�aor +=( const CString& string )throw( CMemoryException );void operator +=( char ch )throw( CMemoryException );void operator +=( const char* psz )throw( CMemoryException );)�a�@a& ��2������4�@a+Aa) "��2�������RemarksC�@anCa5 8��2������������The += concatenation operator joins characters to the end of this string. The operator accepts another CString object, a character pointer, or a single character. You should be aware that memory exceptions may occur whenever you use this concatenation operator because new storage may be allocated for characters added to this CString object. You must ensure that the maximum length limit is not exceeded. The Debug version of the Microsoft Foundation Class Library asserts when it detects strings that are too long. 4+Aa�Ca) "��2�������Example(nCa�Ca% ��0�����~C�CaHDa; F���0���x�
1���	��>�B����	��CString s( "abc" );ASSERT( ( s += "def" ) == "abcdef" );4�Ca|Da(  ��������See AlsoJHDa�Da/ .�6����э�������CString::operator + �i|Da`Ea1�	���������`Ea�Ea_OaCString Comparison OperatorsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")H �Da�Ea(  �@�������CString Comparison Operators
u`Ea�Ga� ����r�=���~�������������������������������������������BOOL operator ==( const CString& s1, const CString& s2 );BOOL operator ==( const CString& s1, const char* s2 );BOOL operator ==( const char* s1, const CString& s2 );BOOL operator !=( const CString& s1, const CString& s2 );BOOL operator !=( const CString& s1, const char* s2 );BOOL operator !=( const char* s1, const CString& s2 );Z��EaJa� $�_�r�=���~��������������������������������������������������BOOL operator <( const CString& s1, const CString& s2 );BOOL operator <( const CString& s1, const char* s2 );BOOL operator <( const char* s1, const CString& s2 );BOOL operator >( const CString& s1, const CString& s2 );BOOL operator >( const CString& s1, const char* s2 );BOOL operator >( const char* s1, const CString& s2 );BOOL operator <=( const CString& s1, const CString& s2 );�6�Ga�Ka� ؀m�r�=���~������������������������������������BOOL operator <=( const CString& s1, const char* s2 );BOOL operator <=( const char* s1, const CString& s2 );BOOL operator >=( const CString& s1, const CString& s2 );BOOL operator >=( const CString& s1, const char* s2 );BOOL operator >=( const char* s1, const CString& s2 ) ;)Ja�Ka& ��2������4�Ka'La) "��2�������Remarks:��KaaMaF Z���2�����������"���������These comparison operators compare two CString objects, and they compare a CString object with an ordinary null-terminated C string. The operators are a convenient substitute for the case-sensitive Compare member function. ReturnsyJ'La�Ma/ .���2���������TRUE if the strings meet the comparison condition; otherwise FALSE. 4aMaNa) "��2�������Example(�Ma6Na% ��0�����)�Na_Oao ��u�0���x�
1���	��x�
1���	��>�B����	��>�B����	�x�
1���	��>�B����	��CString s1( "abc" );CString s2( "abd" );ASSERT( s1 < s2 ); // Operator is overloaded for bothASSERT( "ABC" < s1 ); // CString and char*ASSERT( s2 > "abe" );�a6Na�a1�����������aL�a�aCString::operator []EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")_Oa�a_Oa@_OaL�a(  �0�������CString::operator []]+�a��a2 4�V�r�=���~������char operator []( int nIndex ) const;)L�aҀa& ��2������4��a�a) "��2�������Remarks|$Ҁa��aX ~�I�2������������V�������������You can think of a CString object as an array of characters. The subscript ([]) operator returns a single character specified by the zero-base index in nIndex. This operator is a convenient substitute for the GetAt member function. You can use the subscript ([]) operator on the right side of an expression (r-value semantics), but you cannot use it on the left side of an expression (l-value semantics). That is, you can use this operator to get characters in a CString, but you cannot use it to set characters in the CString. 4�a��a) "��2�������Example(��aރa% ��0�����o4��aM�a; F�h�0���x�
1���	��>�B����	��CString s( "abc" );ASSERT( s[1] == 'b' );4ރa��a(  ��������See Alsoe*M�a�a; F�T����5�g����j������CString::GetAt, CString::SetAt �f��a}�a1%	���������}�a…a��aCString Exception CleanupEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")E�a…a(  �:�������CString Exception Cleanup9}�a��a) "� �2�������Memory Leaks�U…a��aL f���2�������������������If you notice that the Microsoft Foundation diagnostic memory allocator is reporting leaks for non-CObject memory blocks, check your exception-processing logic to see if CString objects are being cleaned up properly. The CString class is typical in that its  constructor and member functions allocate memory that must be freed by the destructor. CString is unique, however, in that instances are often allocated on the frame rather than on the heap. When a frame-allocated CString object goes out of scope, its destructor is called "invisibly" without need for a delete statement. �B��a$�aF Z���2�������3������������Whether you explicitly destroy an object or not, you must be sure that the destructor call isn't bypassed by uncaught exceptions. For frame-allocated (and heap-allocated) CString objects, use a CATCH statement to channel execution through the end of the function that contains the CString allocation. ExampleV0��az�a& �`�2������This is an example of incorrect programming. ($�a��a% ��0�����?z�a�a9 @�
�0���	���x�
1���	�������void TestFunction1(){    CString s1 = "test";    OtherFunction();   // OtherFunction may raise an exception       // This point not passed if an exception occurred.       // s1's destructor called here (frees character storage for       // "test")}����a͌a? L�[������	����3��������You must add TRY/CATCH code to free the string character data in response to memory exceptions. Now the program has been improved to properly handle exceptions. '�a�a$ �������:͌a��a� ހu�0���	���x�
1���	���	���	������3�����	���G���	���b6g���	��]52E���	����!�R���	���void TestFunction2(){    CString s1;    TRY    {        s1 = "test";        OtherFunction(); // OtherFunction may raise an exception    }    CATCH( CException, e )    {        s1.Empty();                // Frees up associated data        THROW_LAST()    }    END_CATCH}�e�aL�a1�
���������L�a��a#�aCString Argument PassingEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CString')")D��a��a(  �8�������CString Argument PassingI L�aُa) "�@�2�������Argument-Passing Conventions.��a�a- (��2�����ُa�a��a���When you define a class interface, you must determine the argument-passing convention for your member functions. There are some standard rules for passing and returning CString objects. If you follow these rules, you will have efficient, correct code. GُaZ�a) "�<�2�������Strings as Function Inputs�j�a�a? L���2��������������If a string is an input to a function, in most cases it is best to declare the string function parameter as const char*. Convert to CString object as necessary within the function, using constructors and assignment operators. If the string contents are to be changed by a function, declare the parameter as a nonconstant CString reference (CString&). HZ�aK�a) "�>�2�������Strings as Function Outputs��aj�aF Z���2�����������������Normally you can return CString objects from functions since CStrings follow value semantics like primitive types. To return a read-only string, use a constant CString reference (const CString&). Example(K�a��a% ��0�����j�a��a� ����0���	��L
���	����x�
1���	���x�
1���	���㉾�[���	������㝙r����	�x�
1���	�x�
1���	���class CName : public CObject{private:    CString m_firstName;    char m_middleInit;    CString m_lastName;public:    CName() {}    void SetData( const char* fn, const char mi, const char* ln )    {        m_firstName = fn;        m_middleInit = mi;        m_lastName = ln;    }    void GetData( CString& cfn, char mi, CString& cln )    {����at�a: B�A�0���	�����x�
1���	������        cfn = m_firstName;        mi = m_middleInit;        cln = m_lastName;    }    CString GetLastName()    {        return m_lastName;    }};'��a��a$ �������t�a#�al ��9�0���	��x�
1���	���㉾�[���	��>�B����	�㝙r����	��>�B����	�����    CName name;    CString last, first;    char middle;    name.SetData( "John", 'Q', "Public" );    ASSERT( name.GetLastName() == "Public" );    name.GetData( first, middle, last );    ASSERT( ( first == "John" ) && ( last == "Public" ) );}return 0;}�r��a��a1������������a�a�	bclass CStringArray : public CObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")O'#�a�a(  �N�������class CStringArray : public CObject9��aN�a* $����R�����Description2��a��ai ������������������������������������The CStringArray class supports arrays of CString objects. The member functions of CStringArray are similar to the member functions of class CObArray. Because of this similarity, you can use the CObArray reference documentation for member function specifics. Wherever you see a CObject pointer as a return value, substitute a CString. Wherever you see a CObject pointer as a function parameter, substitute a const pointer to char. 'N�a��a$ ������W2��a��a% �d�0���	��CObject* CObArray::GetAt( int <nIndex> ) const;C��aA�a% �<������for example, translates to '��ah�a$ ������Z5A�a��a% �j�0���	��CString CStringArray::GetAt( int <nIndex> ) const;,h�a��a% �������and '��a�a$ ������Y4��an�a% �h�0���	��void SetAt( int <nIndex>, CObject* <newElement> )6�a��a% �"������translates to 'n�a��a$ ������\7��a'�a% �n�0���	��void SetAt( int <nIndex>, const char* <newElement> )]��a�bO l��������*0��������4���������CStringArray incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. If an array of CStrings'�a�b#�a is stored to an archive, either with the overloaded insertion operator or with the Serialize member function, each element is, in turn, serialized. If you need a dump of individual string elements in the array, you must set the depth of the dump context to 1 or greater. When a CString array is deleted, or when its elements are removed, string memory is freed as appropriate. A'�a�b(  �2�������#include <afxcoll.h> ;�bb) "�$�2�������Public MembersE�bQb) "�8�2�������Construction/Destruction�ybbO n���R����~���e��������g�%��������CStringArrayConstructs an empty array for CString objects. ~CStringArrayDestroys a CStringArray object. 3
QbLb) "��2�������Bounds�bObR r�c�R����~���|�������+�M������h�������GetSizeGets number of elements in this array. GetUpperBoundReturns the largest valid index. SetSizeSets the number of elements to be contained in this array. 7Lb�b) "��2�������Operations��ObJbD V��R�U��~�U�U�>`��������U8������FreeExtraFrees all unused memory above the current upper bound. RemoveAllRemoves all the elements from this array. ;�b�b) "�$�2�������Element Access �Jb�bR r���R�G��~�G�&�[�������r�ͥ������t9\�������GetAtReturns the value at a given index. SetAtSets the value for a given index; array not allowed to grow. ElementAtReturns a temporary reference to the element pointer within the array. >�b�b) "�*�2�������Growing the Array���b�bD V�E�R�G��~�G��&�i������΍)&������SetAtGrowSets the value for a given index, growing the array if necessary. AddAdds an element to the end of the array; grows the array if necessary. >�bb) "�*�2�������Insertion/Removal���b�bD V�+�R�I��~�I��܀�����6eO������InsertAtInserts an element (or all the elements in another array) at a specified index. RemoveAtRemoves an element at a specific index. 6
b	b) "��2�������OperatorsxC�b�	b5 :���R�G��~�G�ʅ?�������operator []Sets or gets the element at the specified index. �q	b0
b1����������0
b~
b&Mbclass CStringList : public CObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")N&�	b~
b(  �L�������class CStringList : public CObject90
b�
b* $����R�����Description�I~
bi
bi ��������������㌎N
�����������������The CStringList class supports lists of CString objects. All comparisons are done "by value," meaning that the characters in the string are compared instead of the addresses of the strings. The member functions of CStringList are similar to the member functions of class CObList Because of this similarity, you can use the CObArray reference documentation for member function specifics. Wherever you see a CObject pointer as a return value, substitute a CString. Wherever you see a CObject pointer as a function parameter, substitute a const pointer to char. '�
b�
b$ ������K&i
b�
b% �L�0���	��CObject*& CObList::GetHead() const;C�
bb% �<������for example, translates to '�
bEb$ ������N)b�b% �R�0���	��CString& CStringList::GetHead() const;,Eb�b% �������and '�b�b$ ������R-�b8b% �Z�0���	��POSITION AddHead( CObject* <newElement> );6�bnb% �"������translates to '8b�b$ ������U0nb@b% �`�0���	��POSITION AddHead( const char* <newElement> );�b@b�	b|�b�Bba ��7�������*0��������4���������������CStringList incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. If a list of CStrings is stored to an archive, either with the overloaded insertion operator or with the Serialize member function, each CString element is, in turn, serialized. If you need a dump of individual CString elements, you must set the depth of the dump context to 1 or greater. When a CStringList object is deleted, or when its elements are removed, the CString objects are deleted as appropriate. A@b�Bb(  �2�������#include <afxcoll.h> ;�BbCb) "�$�2�������Public MembersE�BbICb) "�8�2�������Construction/Destruction�uCb
DbO n���R�U��~�U�đ��������H�Wˀ�������CStringListConstructs an empty list for CString objects. ~CStringListDestroys a CStringList object. =ICbJDb) "�(�2�������Head/Tail Access��
DbEbD V��R����FD@q�����㦷Nq������GetHeadReturns the head element of the list (cannot be empty). GetTailReturns the tail element of the list (cannot be empty). 7JDbPEb) "��2�������Operations�EbSGbn ��+�R����~����gM������L�uM������[��������eΖ�������1��������RemoveHeadRemoves the element from the head of the list. RemoveTailRemoves the element from the tail of the list. AddHeadAdds an element (or all the elements in another list) to the head of the list (makes a new head). AddTailAdds an element (or all the elements in another list) to the tail of the list (makes a new tail). RemoveAllRemoves all the elements from this list. 6
PEb�Gb) "��2�������Iteration_�SGb�Hb` ����R�ÁY~���(�/������g�������㥏Gq������WJq������GetHeadPositionReturns the position of the head element of the list. GetTailPositionReturns the position of the tail element of the list. GetNextGets the next element for iterating. GetPrevGets the previous element for iterating. C�Gb+Ib) "�4�2�������Retrieval/Modification���Hb*JbR r�[�R�I��~�I��{�������=|�������dž"������GetAtGets the element at a given position. SetAtSets the element at a given position. RemoveAtRemoves an element from this list as specified by position. 6
+Ib`Jb) "��2�������Insertion��*Jb%KbD V��R�o��~�o��JV������c{��������InsertBeforeInserts a new element before a given position. InsertAfterInserts a new element after a given position. 6
`Jb[Kb) "��2�������Searching��%Kb5LbD V�-�R�C��~�C�9eC�������I��ɀ�����FindGets the position of an element specified by string value. FindIndexGets the position of an element specified by a zero-based index. 3
[KbhLb) "��2�������Status�{5Lb&MbC V���R���~��QV�������<uڀ�����GetCountReturns the number of elements in this list. IsEmptyTests for the empty list condition (no elements). �ZhLb�Mb1����������Mb�Mbe�bclass CTimeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_011')")7&Mb�Mb(  ��������class CTime8�Mb Nb) "��2�������Description�+�Mb��bY ��W�2������������������������A CTime object represents an absolute time and date. The CTime class incorporates the ANSI time_t data type and its associated run-time functions, including the ability to convert to and from a Gregorian date and 24-hour time. CTime values are based on universal coordinated time (UCT), which is equivalent to Greenwich mean time (GMT). The local time zone is controlled by the TZ Nb��b&Mb environment variable. See the Run-Time Library Reference for more information on the time_t data type and the run-time functions that are used by CTime. �� Nb��bG \��2�����F�7�������������A companion class, CTimeSpan, represents a time interval--the difference between two CTime objects. #include <afx.h> See Also�W��b%�bK f���2�������������������Run-time functions: asctime, _ftime, gmtime, localtime, strftime, time 7��b\�b) "��2�������Derivation�%�bm�b? L���2��������������The CTime and CTimeSpan classes are not designed for derivation. Because there are no virtual functions, the size of CTime and CTimeSpan objects is exactly 4 bytes. Most member functions are inline. ;\�b��b) "�$�2�������Public MembersEm�b�b) "�8�2�������Construction/Destruction����b݄bP n�A�R���{~���'*���������j��������CTimeConstructs CTime objects in various ways. GetCurrentTimeCreates a CTime object that represents the current time (static member function). 7�b�b) "��2�������Extraction�݄b)�b� ��R����~��㫒�Հ��������㯄�Հ�������*�����������4��������0�Հ�������GetTimeReturns a time_t that corresponds to this CTime object. GetYearReturns the year that this CTime object represents. GetMonthReturns the month that this CTime object represents (1 through 12). GetDayReturns the day that this CTime object represents (1 through 31). GetHourReturns the hour that this CTime object represents (0 through 23). e�b��b^ ���R����~���:�ǥ��������.�|ـ��������Y�������GetMinuteReturns the minute that this CTime object represents (0 through 59). GetSecondReturns the second that this CTime object represents (0 through 59). GetDayOfWeekReturns the day of the week (1 for Sunday, 2 for Monday, and so forth). 7)�bňb) "��2�������Conversion�T��b��bx ����R�[��~�[�9����������z�����������4�-���������4��������GetGmtTmBreaks down a CTime object into components--based on UCT. GetLocalTmBreaks down a CTime object into components--based on the local time zone. FormatConverts a CTime object into a formatted string--based on the local time zone. FormatGmtConverts a CTime object into a formatted string--based on UCT. 6
ňbNJb) "��2�������Operators}��bD�bx ���R��
~����ހ�������ހ�����������ހ�����������ހ�����operator =Assigns new time values. operators +, -Add and subtract CTimeSpan and CTime objects. operators +=, -=Add and subtract a CTimeSpan object to and from this CTime object. operators ==, < , etc.Compare two absolute times. 9NJb}�b) "� �2�������Archive/Dump��D�be�bb ��
�R�;��~�;���ހ�������������ހ���������operator <<Outputs a CTime object to CArchive or CDumpContext. operator >>Inputs a CTime object from CArchive. �W}�b�b1�����������b%�bB�bCTime::CTimeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")8e�b%�b(  � �������CTime::CTime��b7�br ��A�r�=���~�����������������������������CTime();CTime( const CTime& timeSrc );CTime( time_t time );CTime( int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec );)%�b`�b& ��2������K7�b��b2 4�2�R�I��|Q�I�����ParameterDescription)�`�b��bd ����R�I��|�I��������������������b��be�b�������timeSrcIndicates a CTime object that already exists. timeIndicates a time value. nYear, nMonth, nDay, nHour, nMin, nSecIndicate year, month, day, hour, minute, and second. 4��b�b) "��2�������Remarks����b��b. *�U�2���������All these constructors create a new CTime object initialized with the specified absolute time, based on the current time zone. Each constructor is described below: {F�bg�b5 :���R�I��}�I�������CTime();Constructs a CTime object with a zero (illegal) value. ����bJ�b1 0�e�P����������Note:Zero is an invalid time. This constructor is provided to allow the definition of CTime object arrays. You should initialize such arrays with valid times prior to use. �$g�b��b^ ��I�R�I��}�I�����������������������CTime( const CTime& );Constructs a CTime object from another CTime value. CTime( time_t );Constructs a CTime object from a time_t type. CTime( int, int, etc.);Constructs a CTime object from local time components with each component constrained to the following ranges: DJ�b�b1 2�&�P}��~Q�}�����ComponentRange�X��b��bW ~���R�}��~�}�������������������������nYear1900-2036 nMonth1-12 nDay1-31 nHour0-23 nMin0-59 nSec0-59 4�b��b/ ,��R�I��}�I������This constructor makes the appropriate conversion to UCT. The Debug version of the Microsoft Foundation Class Library asserts if one or more of the time-day components is out of range. It is your responsibility to validate the arguments prior to calling. 3��b&�b(  ��������Example'��bM�b$ ��������&�bB�bs ���0���	���T����	�T����	��T����	��T����	�T����	��T����	��time_t osBinaryTime;  // C run-time time (defined in <time.h>)time( &osBinaryTime ) ;  // get the current time from the operating systemCTime time1; // empty CTime (0 is illegal time value)CTime time2 = time1; // copy constructorCTime time3( osBinaryTime ) ;  // CTime from C run-time timeCTime time4( 1999, 3, 19, 22, 15, 0 ) ; // 10:15PM March 19, 1999�XM�b��b1������������b�b��bCTime::FormatEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")9B�b�b(  �"�������CTime::Format^,��bb�b2 4�X�r�=���~������CString Format( const char* pFormat );)�b��b& ��2������Kb�b��b2 4�2�R�=��~Q�=�����ParameterDescription����b��b< F��R�=��~�=���������pFormatSpecifies a formatting string similar to the printf formatting string. See the run-time function strftime for details. 4��b��b) "��2�������Remarks�~��b~�b3 6���2�����������Generates a formatted string that corresponds to this CTime object. The time value is converted to local time. Returns]1��b��b, (�b�2��������A CString that contains the formatted time. 4~�b�b) "��2�������Example(��b7�b% ��0��������b-�bU x�C�0���T����	��x�
1���	�{Aǀ��	��>�B����	��CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999CString s = t.Format( "%A, %B %d, %Y" );ASSERT( s == "Tuesday, March 19, 1999" );47�ba�b(  ��������See AlsoG-�b��b/ .�0�����4������CTime::FormatGmt �[a�b4�b1���������4�bp�bmcCTime::FormatGmtEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")<��bp�b(  �(�������CTime::FormatGmta/4�b��b2 4�^�r�=���~������CString FormatGmt( const char* pFormat );)p�bc& ��2��������bc��bK��bWc2 4�2�R�=��~Q�=�����ParameterDescription��cc< F��R�=��~�=���������pFormatSpecifies a formatting string similar to the printf formatting string. See the run-time function strzftime for details. 4WcOc) "��2�������Remarks��c
c4 6��2�����������Generates a formatted string that corresponds to this CTime object. The time value is not converted and thus reflects UCT. Returns]1Ocjc, (�b�2��������A CString that contains the formatted time. 4
c�c) "��2�������ExampleU#jc�c2 4�F�2������4�-�����See the example for Format. 5�c(c) "��2�������See AlsoE�cmc0 0�*�2�����4�-������CTime::Format �`(c�c1d����������c@cscCTime::GetCurrentTimeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")Bmc@c) "�2�2�������CTime::GetCurrentTimeN"�c�c, (�D�r�=���~����static CTime GetCurrentTime();)@c�c& ��2������4�c�c) "��2�������Remarks{H�cfc3 6���2�����������Returns a CTime object that represents the current time. Example(�c�c% ��0������zfcsck ����0���T����	�T����	��j���	��>�B����	㯄�Հ��	㯄�Հ��	��CTime t = CTime::GetCurrentTime();ASSERT( ( t.GetYear() >= 1999 ) && ( t.GetYear() <= 2000 ) );�X�c�c1+����������c5c/
cCTime::GetDayEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")9sc5c(  �"�������CTime::GetDayC�cxc, (�.�r�=���~����int GetDay() const;)5c�c& ��2������4xc�c) "��2�������Remarks�[�c]c- *���2���������Returns the day of the month, based on local time, in the range 1 through 31. Example(�c�c% ��0�����,�]c�	cz €e�0���T����	��>�B����	���4���	��>�B����	�*����	��>�B����	㯄�Հ��	��CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999ASSERT( t.GetDay() == 19 );ASSERT( t.GetMonth() == 3 );ASSERT( t.GetYear() == 1999 );4�c�	c(  ��������See AlsoJ�	c/
c/ .�6�����Y�������CTime::GetDayOfWeek �^�	c�
c1[����������
c�
c'cCTime::GetDayOfWeekEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")?/
c�
c(  �.�������CTime::GetDayOfWeekI�
cFc, (�:�r�=���~����int GetDayOfWeek() const;)�
coc& ��2������4Fc�c) "��2�������Remarks�^oc'c& ���2������Returns the day of the week based on local time. 1 = Sunday, 2 = Monday, ... 7 = Saturday. �Z�c�c14����������c�c�CcCTime::GetGmtTmEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")<'c�c) "�&�2�������CTime::GetGmtTmk9�cY
c2 4�r�r�=���~������struct tm* GetGmtTm( struct tm* ptm = NULL ) const;)�c�
c& ��2������KY
c�
c2 4�2�R�=��~Q�=�����ParameterDescription,��
c�c< F���R�=��~�=���������ptmPoints to a buffer that will receive the time data. If this pointer is NULL, an internal, statically allocated buffer is used. The data in this default buffer is overwritten as a result of calls to other CTime member functions. 4�
c-c) "��2�������Remarks���c@c@ N�	�2���������������Gets a struct tm that contains a decomposition of the time contained in this CTime object. GetGmtTm returns UCT. Returns-c@c'c�k-c�@c, (���2��������A pointer to a filled-in struct tm as defined in the include file TIME.H. The members are as follows: H@c�@c2 4�,�R���~Q������FieldValue Stored��@cpBcp ��+�R���~��������������������������������������tm_secSeconds tm_minMinutes tm_hourHours (0-23) tm_mdayDay of month (1-31) tm_monMonth (0-11; January = 0) tm_yearYear (actual year minus 1900) tm_wdayDay of week (1-7; Sunday = 1) tm_ydayDay of year (0-365; January 1 = 0) tm_isdstAlways 0 ���@c/Cc7 <��R�������������Note:The year in struct tm is in the range -1 to 136; the year in the CTime interface is in the range 1900 to 2036 (inclusive). 3pBcbCc(  ��������ExampleX'/Cc�Cc1 2�N�����z�������See the example for GetLocalTm. �\bCcGDc1x���������GDc�Dc�IcCTime::GetLocalTmEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")=�Cc�Dc(  �*�������CTime::GetLocalTmf4GDc�Dc2 4�h�r�=���~������struct tm* GetLocalTm( struct tm* ptm ) const;)�DcEc& ��2������K�Dc^Ec2 4�2�R�=��~Q�=�����ParameterDescription,�Ec�Fc< F���R�=��~�=���������ptmPoints to a buffer that will receive the time data. If this pointer is NULL, an internal, statically allocated buffer is used. The data in this default buffer is overwritten as a result of calls to other CTime member functions. 4^Ec�Fc) "��2�������Remarks���Fc�Gc@ N��2���������������Gets a struct tm containing a decomposition of the time contained in this CTime object. GetLocalTm returns local time. Returns�z�Fc:Hc8 @���2�������9�������A pointer to a filled-in struct tm as defined in the include file TIME.H. See GetGmtTm for the structure layout. 4�GcnHc) "��2�������Example(:Hc�Hc% ��0�����5�nHc�IcJ b���0���T����	���z�����	��>�B����	��CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999struct tm* osTime;  // a pointer to a structure containing time elementsosTime = t.GetLocalTm( NULL );ASSERT( osTime->tm_mon == 2 ); // note zero-based month!�Y�HcUJc1����������UJc�JcMcCTime::GetHourEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')"):�Ic�Jc(  �$�������CTime::GetHourDUJc�Jc, (�0�r�=���~����int GetHour() const;)�Jc�Jc& ��2������4�Jc0Kc) "��2�������Remarks|O�Jc�Kc- *���2���������Returns the hour, based on local time, in the range 0 through 23. Example(0Kc�Kc% ��0�����.��KcMcz €i�0���T����	��>�B����	�.�|ـ��	��>�B����	�:�ǥ���	��>�B����	�0�Հ��	��CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999ASSERT( t.GetSecond() == 0 );ASSERT( t.GetMinute() == 15 );ASSERT( t.GetHour() == 22 );�[�Kc�Mc1�����������Mc�McAOcCTime::GetMinuteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")<Mc�Mc(  �(�������CTime::GetMinuteF�McNc, (�4�r�=���~����int GetMinute() const;)�Mc9Nc& ��2������4NcmNc) "��2�������Remarks~Q9Nc�Nc- *���2���������Returns the minute, based on local time, in the range 0 through 59. ExampleV$mNcAOc2 4�H�2�����0�Հ����See the example for GetHour. �Z�Nc�Oc1�����������Oc�c��cCTime::GetMonthEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")<AOc�c) "�&�2�������CTime::Get�Oc�cAOcMonthE�OcY�c, (�2�r�=���~����int GetMonth() const;)�c��c& ��2������4Y�c��c) "��2�������Remarks�^��cA�c- *���2���������Returns the month, based on local time, in the range 1 through 12 (1 = January). ExampleU#��c��c2 4�F�2�������4�����See the example for GetDay. �[A�c"�c1����������"�c_�cփcCTime::GetSecondEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")=��c_�c) "�(�2�������CTime::GetSecondF"�c��c, (�4�r�=���~����int GetSecond() const;)_�c΂c& ��2������4��c�c) "��2�������Remarks~Q΂c��c- *���2���������Returns the second, based on local time, in the range 0 through 59. ExampleV$�cփc2 4�H�2�����0�Հ����See the example for GetHour. �Y��c`�c1����������`�c��cI�cCTime::GetTimeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')");փc��c) "�$�2�������CTime::GetTimeG`�c�c, (�6�r�=���~����time_t GetTime() const;)��c�c& ��2������4�c?�c) "��2�������Remarks}D�c��c9 B���2�������������Returns a time_t value for the given CTime object. Example(?�c�c% ��0���������c҆c= H�c�0���T����	�㫒�Հ��	���CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999time_t osBinaryTime = t.GetTime(); // time_t defined in <time.h>printf( "time_t = %ld\n", osBinaryTime );4�c�c(  ��������See AlsoC҆cI�c/ .�(����'*������CTime::CTime �Y�cӇc1����������Ӈc
�cy�cCTime::GetYearEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')"):I�c
�c(  �$�������CTime::GetYear>ӇcK�c, (�$�r�=���~����int GetYear();)
�ct�c& ��2������4K�c��c) "��2�������Remarks|Ot�c$�c- *���2���������Returns the year, based on local time, in the range 1900 to 2036. ExampleU#��cy�c2 4�F�2�������4�����See the example for GetDay. �\$�c�c1�����������cD�c�cCTime::operator =EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")>y�cD�c) "�*�2�������CTime::operator =�_�c�c? N���r�=���~�����������const CTime& operator =( const CTime& timeSrc );const CTime& operator =( time_t t );)D�c�c& ��2������4�c?�c) "��2�������Remarks"��ca�c; D���2��������������These overloaded assignment operators copy the source time into this CTime object. The internal time storage in a CTime object is independent of time zone. Time-zone conversion is not necessary during assignment. Example(?�c��c% ��0�������a�c}�cL f�Q�0���	��T����	��T����	�T����	��time_t osBinaryTime;  // C run-time time (defined in <time.h>)CTime t1 = osBinaryTime; // assignment from time_tCTime t2 = t1; // assignment from CTime4��c��c(  ��������See AlsoC}�c�c/ .�(����'*������CTime::CTime �_��c��c1E�����������cĎc��cCTime::operator +, -EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")@�cĎc(  �0�������CTime::operator +, -����c��cM h�'�r�=���~����������������CTime operator +( CTimeSpan timeSpan ) const;CTime operator -( CTimeSpan timeSpan ) const;CTimeSpan operator -( CTime time ) const;)Ďc͏c& ��2������4��c
�c) "��2�������Remarks͏c
�c�cx)͏c��cO l�S�2��������������������CTime objects represent absolute time. CTimeSpan objects represent relative time. The first two operators allow you to add and subtract CTimeSpan objects to and from CTime objects. The third allows you to subtract one CTime object from another to yield a CTimeSpan object. Example(
�c��c% ��0�����,���c��c� &��0���T����	��T����	��F�7���	��>�B����	�L.���	��>�B����	�F�7���	�T����	��>�B����	�F�7���	�T����	��CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999CTimeSpan ts = t2 - t1;  // subtract 2 CTimesASSERT( ts.GetTotalSeconds() == 86400L );ASSERT( ( t1 + ts ) == t2 );  // add a CTimeSpan to a CTimeASSERT( ( t2 - ts ) == t1 );  // subtract a CTimeSpan from a CTime�a��ck�c1����������k�c��ct�cCTime::operator +=, -=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")B��c��c(  �4�������CTime::operator +=, -=�ik�cU�c? N���r�=���~�����������const CTime& operator +=( CTimeSpan timeSpan );const CTime& operator -=( CTimeSpan timeSpan );)��c~�c& ��2������4U�c��c) "��2�������Remarks�q~�c\�c9 B���2�������������These operators allow you to add and subtract a CTimeSpan object to and from this CTime object. Example(��c��c% ��0�������\�ct�cU x�7�0���T����	��F�7���	��>�B����	�0�Հ��	��CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999t += CTimeSpan( 0, 1, 0, 0 ); // 1 hour exactlyASSERT( t.GetHour() == 23 );�e��c
�c1���������
�cP�c7�cCTime Comparison OperatorsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")Ft�cP�c(  �<�������CTime Comparison Operatorso�
�c��ct ����r�=���~�������������������������������BOOL operator ==( CTime time ) const;BOOL operator !=( CTime time ) const;BOOL operator <( CTime time ) const;BOOL operator >( CTime time ) const;BOOL operator <=( CTime time ) const;BOOL operator >=( CTime time ) const;)P�c��c& ��2������4��c�c) "��2�������Remarks�w��c��c9 B���2�������������These operators compare two absolute times and return TRUE if the condition is true; otherwise FALSE. Example(�c��c% ��0�����C���c7�c� ܀y�0���T����	�T����	��j���	��T����	�F�7���	��>�B����	��>�B����	��>�B����	��CTime t1 = CTime::GetCurrentTime();CTime t2 = t1 + CTimeSpan( 0, 1, 0, 0 );    // 1 hour laterASSERT( t1 != t2 );ASSERT( t1 < t2 );ASSERT( t1 <= t2 );�b��c��c1/�����������c
�c�dCTime::operators <<, >>EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTime')")C7�c
�c(  �6�������CTime::operators <<, >>*���c7�c_ ����r�=���~����������������������friend CDumpContext& operator <<( CDumpContext& dc, CTime time );friend CArchive& operator <<( CArchive& ar, CTime time );friend CArchive& operator >>( CArchive& ar, CTime& rtime );)
�c`�c& ��2������47�c��c) "��2�������Remarks[`�cdG \�)�2������������������The CTime insert (<<) operator supports diagnostic dumping and storing to an archive. The extract (>>) operator supports loading from an archive. When you send a CTime object to the dump context, the local time is displayed in readable date-time format. Example��cd7�c(��c4d% ��0�����1�dedZ ����0���T����	��T����	����ؘ����	�㇠l���	�����CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999afxDump << t << "\n"; // prints 'CTime("Tue Mar 19 22:15:00 1999")'extern CArchive ar;if( ar.IsLoading() )  ar >> t;else  ar << t;44d�d(  ��������See Also]"ed�d; F�D�����ؘ�����ԏ�������CArchive, CDumpContext �^�d�d1�����������d�dfdclass CTimeSpanEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_011')");�d�d(  �&�������class CTimeSpan8�d�d) "��2�������Descriptionr�djd_ ��'�2�����������������T����������A CTimeSpan object represents a relative time span. The CTimeSpan class incorporates the ANSI time_t data type and its associated run-time functions. These functions convert seconds to various combinations of days, hours, minutes, and seconds. A CTimeSpan object keeps time in seconds. Because the CTimeSpan object is stored as a signed number in 4 bytes, the maximum allowed span is about +- 68 years. A companion class, CTime, represents an absolute time. A CTimeSpan is the difference between two CTimes. P �d�d0 0�@�2����������#include <afx.h> See Also�Wjd\dK f���2�������������������Run-time functions: asctime, _ftime, gmtime, localtime, strftime, time 7�d�d) "��2�������Derivation�\d�d? L���2��������������The CTime and CTimeSpan classes are not designed for derivation. Because there are no virtual functions, the size of both CTime and CTimeSpan objects is exactly 4 bytes. Most member functions are inline. ;�d�d) "�$�2�������Public MembersE�d)d) "�8�2�������Construction/Destruction{@�d�d; F���R�Y��~�Y��Vd���������CTimeSpanConstructs CTimeSpan objects in various ways. 7)d�d) "��2�������Extraction��d�
d� ΀)�R�ˁQ~���gɋ���������{��������V������������������~��������GetDaysReturns the number of complete days in this CTimeSpan. GetHoursReturns the number of hours in the current day (-23 through 23). GetTotalHoursReturns the total number of complete hours in this CTimeSpan. GetMinutesReturns the number of minutes in the current hour (-59 through 59). GetTotalMinutesReturns the total number of complete minutes in this CTimeSpan. ���d�dJ b�]�R�ˁQ~�����yZ������L.��������GetSecondsReturns the number of seconds in the current minute (-59 through 59). GetTotalSecondsReturns the total number of complete seconds in this CTimeSpan. 7�
dd) "��2�������Conversionw=�d�d: D�z�R���'���=+���������FormatConverts a CTimeSpan into a formatted string. 6
d�d) "��2�������Operatorsr�d=dr ���R��~��3��*������4��*��������%��*����������&��*������operator =Assigns new time-span values. operators +, -Add and subtract CTimeSpan objects. operators +=, -=Add and subtract a CTimeSpan object to and from this CTimeSpan. operators ==, <, etc.Compare two relative time values. 9�dvd) "� �2�������Archive/Dump��=dfdb ���R�;��~�;�'��*������������'��*����������operator <<Outputs a CTimeSpan object to CArchive or CDumpContext. operator >>Inputs a CTimeSpan object from CArchive. �cvd@d1�	���������@dL@d�IdCTimeSpan::CTimeSpanEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")fd@dfd@fdL@d(  �0�������CTimeSpan::CTimeSpan�@dTAdf ��E�r�=���~�������������������������CTimeSpan();CTimeSpan( const CTimeSpan& timeSpanSrc );CTimeSpan( time_t time );CTimeSpan( LONG lDays, int nHours, int nMins, int nSecs );)L@d}Ad& ��2������KTAd�Ad2 4�2�R�u��}Q�u�����ParameterDescription��}Ad�Bd^ ��C�R�u��}�u�����������������������timeSpanSrcA CTimeSpan object that already exists. timeA time_t time value. lDays, nHours, nMins, nSecsDays, hours, minutes, and seconds. 4�Ad�Bd) "��2�������Remarks���Bd�Cd- (��2��������All these constructors create a new CTimeSpan object initialized with the specified relative time. Each constructor is described below: ;��Bd�Edr ����R�)��|�)�������������������������������CTimeSpan();Constructs an uninitialized CTimeSpan object. CTimeSpan( const CTimeSpan& );Constructs a CTimeSpan object from another CTimeSpan value. CTimeSpan( time_t );Constructs a CTimeSpan object from a time_t type. This value should be the difference between two absolute time_t values. CTimeSpan( LONG, int, int, int );Constructs a CTimeSpan object from components with each component constrained to the following ranges: D�Cd4Fd1 2�&�P]��~Q�]�����ComponentRange�N�Ed�FdG ^���R�]��~�]�����������������lDays0-25,000 (approximately) nHours0-23 nMins0-59 nSecs0-59 ��4Fd�Gd+ $���P��������Note:The Debug version of the Microsoft Foundation Class Library asserts if one or more of the time-day components is out of range. It is your responsibility to validate the arguments prior to calling. 3�Fd�Gd(  ��������Example'�GdHd$ ��������Gd�Id{ Ā�0���F�7���	��F�7���	�Y����	��F�7���	�Y����	��F�7���	��F�7���	��CTimeSpan ts1;  // Uninitialized time valueCTimeSpan ts2a( ts1 ); // Copy constructorCTimeSpan ts2b = ts1; // Copy constructor againCTimeSpan ts3( 100 ); // 100 secondsCTimeSpan ts4( 0, 1, 5, 12 );    // 1 hour, 5 minutes, and 12 seconds�`Hd7Jd1����������7JdtJd=�dCTimeSpan::FormatEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")=�IdtJd(  �*�������CTimeSpan::Format^,7Jd�Jd2 4�X�r�=���~������CString Format( const char* pFormat );)tJd�Jd& ��2������K�JdFKd2 4�2�R�=��~Q�=�����ParameterDescription�G�Jd�LdP n���R�=��~�=������������{Aǀ����pFormatA formatting string similar to the printf formatting string. Formatting codes, preceded by a percent (%) sign, are replaced by the corresponding CTimeSpan component. Other characters in the formatting string are copied unchanged to the returned string. The formatting codes for Format are listed below: CFKd Md2 4�"�R��?Q������ValueMeaning���LdNdV z�=�R��?������������������������%DTotal days in this CTimeSpan %HHours in the current day %MMinutes in the current hour %SSeconds in the current minute %%Percent sign 4 MdHNd) "��2�������Remarks��Nd>Od5 8���2������������Generates a formatted string that corresponds to this CTimeSpan. The Debug version of the library checks the formatting codes and asserts if the code is not in the table above. Returnsd8HNd�Od, (�p�2��������A CString object that contains the formatted time. 4>Od�Od) "��2�������Example(�Od�d% ��0������Od�d�Id1��Od=�dU x���0���F�7���	��x�
1���	�{Aǀ��	��>�B����	��CTimeSpan ts( 3, 1, 5, 12 ); // 3 days, 1 hour, 5 min, and 12 secCString s = ts.Format( "Total days: %D, hours: %H, mins: %M, secs: %S" );ASSERT( s == "Total days: 3, hours: 01, mins: 05, secs: 12" );�a�dρd1F���������ρd
�d"�dCTimeSpan::GetDaysEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")>=�d
�d(  �,�������CTimeSpan::GetDaysEρdR�d, (�2�r�=���~����LONG GetDays() const;)
�d{�d& ��2������4R�d��d) "��2�������Remarks�k{�dG�d- *���2���������Returns the number of complete days. This value may be negative if the time span is negative. Example(��do�d% ��0������lG�d"�dG ^���0���F�7���	��>�B����	�gɋ���	��CTimeSpan ts( 3, 1, 5, 12 ); // 3 days, 1 hour, 5 min, and 12 secASSERT( ts.GetDays() == 3 );�bo�d��d1������������d�d~�dCTimeSpan::GetHoursEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")?"�d�d(  �.�������CTimeSpan::GetHoursE��d9�d, (�2�r�=���~����int GetHours() const;)�db�d& ��2������49�d��d) "��2�������Remarks�[b�d�d- *���2���������Returns the number of hours in the current day. The range is  -23 through 23. Example(��dF�d% ��0�����8��d~�dz €}�0���F�7���	��>�B����	��{���	��>�B����	������	��>�B����	���yZ���	��CTimeSpan ts( 3, 1, 5, 12 ); // 3 days, 1 hour, 5 min, and 12 secASSERT( ts.GetHours() == 1 );ASSERT( ts.GetMinutes() == 5 );ASSERT( ts.GetSeconds() == 12 );�dF�d�d1�����������dT�dډdCTimeSpan::GetMinutesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")A~�dT�d(  �2�������CTimeSpan::GetMinutesG�d��d, (�6�r�=���~����int GetMinutes() const;)T�dĈd& ��2������4��d��d) "��2�������Remarks�^Ĉd��d- *���2���������Returns the number of minutes in the current hour. The range is  -59 through 59. ExampleW%��dډd2 4�J�2������{�����See the example for GetHours. �d��do�d1����������o�d��d9�dCTimeSpan::GetSecondsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")Bډd��d) "�2�2�������CTimeSpan::GetSecondsGo�d��d, (�6�r�=���~����int GetSeconds() const;)��d!�d& ��2������4��dU�d) "��2�������Remarks�`!�d�d- *���2���������Returns the number of seconds in the current minute. The range is  -59 through 59. ExampleW%U�d9�d2 4�J�2������{�����See the example for GetHours. �g�dьd1����������ьd�d��dCTimeSpan::GetTotalHoursEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")E9�d�d) "�8�2�������CTimeSpan::GetTotalHoursKьda�d, (�>�r�=���~����LONG GetTotalHours() const;)�d��d& ��2������4a�d��d) "��2�������Remarks�M��d>�d3 6���2�����������Returns the total number of complete hours in this CTimeSpan. Example(��df�d% ��0�����O�>�d��dz €��0���F�7���	��>�B����	���V���	��>�B����	���~���	��>�B����	�L.���	��CTimeSpan ts( 3, 1, 5, 12 ); // 3 days, 1 hour, 5 min, and 12 secASSERT( ts.GetTotalHours() == 73 );ASSERT( ts.GetTotalMinutes() == 4385 );ASSERT( ts.GetTotalSeconds() == 263112 );�if�d[�d1����������[�d��d)�dCTimeSpan::GetTotalMinutes��d[�d��dEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")F��d��d(  �<�������CTimeSpan::GetTotalMinutesM![�d��d, (�B�r�=���~����LONG GetTotalMinutes() const;)��d�d& ��2������4��dK�d) "��2�������Remarks�O�d��d3 6���2�����������Returns the total number of complete minutes in this CTimeSpan. Example\*K�d)�d2 4�T�2�������V�����See the example for GetTotalHours. �i��d��d1������������d
�d��dCTimeSpan::GetTotalSecondsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")G)�d
�d) "�<�2�������CTimeSpan::GetTotalSecondsM!��dW�d, (�B�r�=���~����LONG GetTotalSeconds() const;)
�d��d& ��2������4W�d��d) "��2�������Remarks�O��d6�d3 6���2�����������Returns the total number of complete seconds in this CTimeSpan. Example\*��d��d2 4�T�2�������V�����See the example for GetTotalHours. �d6�d'�d14���������'�di�dl�dCTimeSpan::operator =EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")B��di�d) "�2�2�������CTimeSpan::operator =tB'�d��d2 4���r�=���~������const CTimeSpan& operator =( const CTimeSpan& timeSpanSrc );)i�d�d& ��2������4��d:�d) "��2�������Remarks���d��d@ N��2���������������The overloaded assignment operator copies the source CTimeSpan timeSpanSrc object into this CTimeSpan object. Example(:�d#�d% ��0���������d��dJ b��0���F�7���	��F�7���	���>�B����	��CTimeSpan ts1;CTimeSpan ts2( 3, 1, 5, 12 ); // 3 days, 1 hour, 5 min, and 12 sects1 = ts2;ASSERT( ts1 == ts2 );4#�d!�d(  ��������See AlsoK��dl�d/ .�8�����Vd�������CTimeSpan::CTimeSpan �h!�d�d1(����������dJ�dA�dCTimeSpan::operators +, -EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")El�dJ�d(  �:�������CTimeSpan::operators +, -�m�d��d? N���r�=���~�����������CTimeSpan operator -( CTimeSpan timeSpan ) const;CTimeSpan operator +( CTimeSpan timeSpan ) const;)J�d�d& ��2������4��dS�d) "��2�������Remarks�d�d��d3 6���2�����������These two operators allow you to add and subtract CTimeSpans to and from each other. Example(S�d�d% ��0�����/���dA�db ����0���F�7���	��F�7���	��F�7���	��>�B����	���yZ���	��CTimeSpan ts1( 3, 1, 5, 12 ); // 3 days, 1 hour, 5 min, and 12 secCTimeSpan ts2( 100 ); // 100 secondsCTimeSpan ts3 = ts1 + ts2;ASSERT( ts3.GetSeconds() == 52 ); // 6 mins, 52 secs�i�d��d1������������d!�deCTimeSpan::operator +=, -=EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")FA�d!�d(  �<�������CTimeSpan::operator +=, -=�q��d��d? N���r�=���~�����������const CTimeSpan& operator +=( CTimeSpan timeSpan );const CTimeSpan& operator -=( CTimeSpan timeSpan );)!�d��d& ��2������4��d.�d) "��2�������Remarks�g��d��d9 B���2�������������These operators allow you to add and subtract a CTimeSpan to and from this CTimeSpan. Example(.�d��d% ��0���������deV z��0���F�7���	��F�7���	���>�B����	�L.���	��CTimeSpan ts1( 10 ); // 10 secondsCTimeSpan ts2( 100 ); // 100 secondsts2 -= ts1;ASSERT( ts2.GetTotalSeconds() == 90 );��deA�d�m��d�e1�����������e�e�eCTimeSpan Comparison OperatorsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")J"e�e(  �D�������CTimeSpan Comparison Operators�+�e�et ��W�r�=���~�������������������������������BOOL operator ==( CTimeSpan timeSpan ) const;BOOL operator !=( CTimeSpan timeSpan ) const;BOOL operator <( CTimeSpan timeSpan ) const;BOOL operator >( CTimeSpan timeSpan ) const;BOOL operator <=( CTimeSpan timeSpan ) const;BOOL operator >=( CTimeSpan timeSpan ) const;)�e�e& ��2������4�e�e) "��2�������Remarks��e�e9 B���2�������������These operators compare two relative time values. They return TRUE if the condition is true; otherwise FALSE. Example(�e�e% ��0������v�e�eH `���0���F�7���	��F�7���	��>�B����	��CTimeSpan ts1( 100 );CTimeSpan ts2( 110 );ASSERT( ( ts1 != ts2 ) && ( ts1 < ts2 ) && ( ts1 <= ts2 ) );�j�e)e1����������)epe$
eCTimeSpan::operators <<, >>EnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `CTimeSpan')")G�epe(  �>�������CTimeSpan::operators <<, >>B�)e�e_ ����r�=���~����������������������friend CDumpContext& operator <<( CDumpContext& dc, CTimeSpan timeSpan );friend CArchive& operator <<( CArchive& ar, CTimeSpan timeSpan );friend CArchive& operator >>( CArchive& ar, CTimeSpan& rtimeSpan );)pe�e& ��2������4�ee) "��2�������Remarks�B�e�eG \���2������������������The CTimeSpan insert (<<) operator supports diagnostic dumping and storing to an archive. The extract (>>) operator supports loading from an archive. When you send a CTimeSpan object to the dump context, the value is displayed in a human-readable format that shows days, hours, minutes, and seconds. Example(e�e% ��0�����d�e$
e] ���0���F�7���	�����F�7���	����ؘ����	�㇠l���	�����CTimeSpan ts( 3, 1, 5, 12 ); // 3 days, 1 hour, 5 min, and 12 sec#ifdef _DEBUGafxDump << ts << "\n";#endif// prints 'CTimeSpan(3 days, 1 hours, 5 minutes and 12 seconds)'extern CArchive ar;if( ar.IsLoading( ))  ar >> ts;else  ar << ts;�p�e�
e1�����������
ee�Geclass CWordArray : public CObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_010')")M%$
ee(  �J�������class CWordArray : public CObject9�
eKe* $����R�����Description�me	
eQ p���������������������������The CWordArray class supports arrays of 16-bit words. The member functions of CWordArray are similar to the member functions of class CObArray. Because of this similarity, you can use the CObArray reference documentation for member function specifics. Wherever you see a CObject pointer as a function parameter or return value, substitute a WORD. 'Ke0
e$ ������W2	
e�
e% �d�0���	��CObject* CObArray::GetAt( int <nIndex> ) const;C0
e�
e% �<������for example, translates to '�
e�
e$ ������U0�
eFe% �`�0���	��WORD CWordArray::GetAt( int <nIndex> ) const;���
eF@eI `�W�������*0������4���������CWordArray incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. If an array of words is stored to an archive, either with the overloaded insertion operator or with the Serialize member function, each element is, in turn, serialized. If you need a dump of individual elements in the array, you must set the depth of thFeF@e$
ee dump context to 1 or greater. #include <afxcoll.h> ;Fe�@e) "�$�2�������Public MembersEF@e�@e) "�8�2�������Construction/Destruction�g�@evAeI b���R�k��~�k�e������g�%��������CWordArrayConstructs an empty array for words. ~CWordArrayDestroys a CWordArray object. 3
�@e�Ae) "��2�������Bounds�vAe�BeR r�c�R����~���|�������+�M������h�������GetSizeGets number of elements in this array. GetUpperBoundReturns the largest valid index. SetSizeSets the number of elements to be contained in this array. 7�Ae�Be) "��2�������Operations���Be�CeD V��R�U��~�U�U�>`��������U8������FreeExtraFrees all unused memory above the current upper bound. RemoveAllRemoves all the elements from this array. ;�Be�Ce) "�$�2�������Element Access ��CeEeR r���R�G��~�G�&�[�������r�ͥ������t9\�������GetAtReturns the value at a given index. SetAtSets the value for a given index; array not allowed to grow. ElementAtReturns a temporary reference to the element pointer within the array. >�Ce@Ee) "�*�2�������Growing the Array��Ee&FeD V�E�R�G��~�G��&�i������΍)&������SetAtGrowSets the value for a given index, growing the array if necessary. AddAdds an element to the end of the array; grows the array if necessary. >@EedFe) "�*�2�������Insertion/Removal��&Fe=GeD V�+�R�I��~�I��܀�����6eO������InsertAtInserts an element (or all the elements in another array) at a specified index. RemoveAtRemoves an element at a specific index. 6
dFesGe) "��2�������OperatorsxC=Ge�Ge5 :���R�G��~�G�ʅ?�������operator []Sets or gets the element at the specified index. �bsGe~He1����������~He�HeЀeDiagnostic ServicesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_012')")?�Ge�He(  �.�������Diagnostic Services�~He�Je( ����������This topic describes a group of macros and global functions that provide diagnostic services. All these functions, except as noted, require the Debug version of the Microsoft Foundation Class Library. In the Debug library, all allocated memory blocks are bracketed with a series of "guard bytes." If these bytes are disturbed by an errant memory write, then the diagnostic routines can report the problem. The diagnostic services fall into the following three categories: �4�HeZLed ��i�R���c}���
��������񾚀�������k���������General Diagnostic MacrosDiagnostic macros that do not relate to an object of class CObject. General Diagnostic FunctionsDiagnostic functions that do not relate to an object of class CObject. Object Diagnostic FunctionsDiagnostic functions that relate to an object of class CObject. @�Je�Le% �6������If you include the line 'ZLe�Le$ ������=�Le�Le% �0�0���	��#define new DEBUG_NEW��Le�eQ p�k�������֡����������ԏ������in your implementation file, then all calls to new will store the filename and line number where the memory allocation took place. The DumpAllObjectsSince function of the CMemoryState class will display this extra information, thus greatly simplifying the identification of memory leaks. Since many of these diagnostic functions are designed for tracking memory errors, you should refer to the "Memory Management" section in Chapter 7 of the Class Libraries User's Guide for a discussion of memory allocation for both MS-DOS and Windows while using the Microsoft Foundation Class Library. Refer also to the class CDumpContext for additional information on diagnostic output�Le�e�Ge. ���LeЀe4 6�������������To use these macros and global functions, add the following directives to the top of your program: #define _DEBUG #include <afx.h> �r�es�e1���������s�e��e��eGeneral Diagnostic MacrosEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Diagnostic_Services')")EЀe��e(  �:�������General Diagnostic Macros`;s�e�e% �v������The following list describes general diagnostic macros: ����e��e� ���R��)~���>�B���������y������p�v��������y���������9�iQ�����>�B������ASSERTPrints a message if the specified expression evaluates to FALSE in the Debug version of the library, and then aborts the program. ASSERT_VALIDTests the internal validity of an object by calling its AssertValid member function, typically overridden from CObject. TRACEProvides printf-like capability in the Debug version of the library. VERIFYSimilar to ASSERT but evaluates the expression in the Release version of the library as well as in the Debug version. �u�eA�e1���������A�e��eg�eGeneral Diagnostic FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Diagnostic_Services')")H ��e��e(  �@�������General Diagnostic Functionsc>A�e�e% �|������The following list describes general diagnostic functions: e���eQ�e| ƀ��R����}���Ω���������������y��������g*�k������u�Z΀�������I�������afxMemDFGlobal variable that controls the behavior of the debugging memory allocator. AfxCheckMemoryChecks all currently allocated memory for corrupted guard bytes. AfxEnableMemoryTrackingTurns memory tracking on and off. AfxIsMemoryBlockVerifies that a memory block has been properly allocated. AfxIsValidAddressVerifies that any memory block is within the program's bounds. AfxSetAllocHookEnables the calling of a function on each memory allocation. {��e̊e� ΀��R����}���`<W�������{kA��������~n-Y������&U��������֡���������AfxSetAllocStopEnables the calling of a function on the nth memory allocation. CheckpointA CMemoryState member function that checkpoints a memory state. CMemoryStateConstructor for a class-like structure that controls memory checkpointing. DifferenceA CMemoryState member function that computes the difference between two checkpointed memory states. DumpAllObjectsSinceA CMemoryState member function that dumps all currently allocated objects since the last checkpoint. �`Q�eg�e; F���R����}����ք��������DumpStatisticsA CMemoryState member function that prints memory allocation statistics. �t̊e�e12����������eS�eT�eObject Diagnostic FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Diagnostic_Services')")Gg�eS�e(  �>�������Object Diagnostic Functionsb=�e��e% �z������The following list describes object diagnostic functions: �7S�eT�eh ��o�R���}���Ge+�������@#|ˀ���;�"�������~��������AfxDoForAllClassesPerforms a specified function on all CObject-derived classes that support run-time type checking by using the DECLARE_DYNAMIC or DECLARE_SERIAL macros. AfxDoForAllObjectsPerforms a specified function on all CObject-derived objects that support run-time type checking. �j��e�e1L����������e#�e5�eafxMemDFEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')")4T�e#�e(  ��������afxMemDF:�e]�e(  �$�������int afxMemDF; 4#�e��e) "��2�������Remarks��]�ey�e- (�_�2��������An integer variable, easily accessible from a debugger, that tune��ey�eT�es the allocation diagnostics. It can have the following values as specified by the enumeration AfxMemDF: 
���e��eL f���R��	~���������������������allocMemDFTurns on debugging allocator (default setting in Debug library). delayFreeMemDFDelays freeing memory. While your program frees a memory block, the allocator delays returning that memory to the underlying operating system. This will place maximum memory stress on your program. checkAlwaysMemDFCalls AfxCheckMemory every time memory is allocated or freed. This will significantly slow memory allocations and deallocations. 3y�e��e(  ��������Example'��e��e$ ������U0��e5�e% �`�0���	��afxMemDF = delayFreeMemDF | checkAlwaysMemDF;�p��e��e1k
�����������e�eJ�eAfxCheckMemoryEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')"):5�e�e(  �$�������AfxCheckMemoryM!��e]�e, (�B�r�=���~����BOOL PASCAL AfxCheckMemory();)�e��e& ��2������4]�e��e) "��2�������Remarks�)��eA�e^ ��S�2����������������	��	��֡������Iterates through all memory blocks currently allocated on the heap. These blocks include those allocated by new, but not those allocated by direct calls to underlying memory allocators such as malloc or ::GlobalAlloc. If any block is found to have corrupt guard bytes, a message is printed on stderr. If the block contains an object of a class derived from CObject, then the function reports an Object, otherwise it reports a Non-Object. It always reports an address that corresponds to the address printed by DumpAllObjectsSince. ����e(�e)  �}�2��������Additionally, the function validates the free memory pool, printing error messages as required. If the function detects no memory corruption, it prints nothing. If you include the line (A�eP�e% ��0�����=(�e��e% �0�0���	��#define new DEBUG_NEW��P�e=�e, &�	��������in a program module, then subsequent calls to AfxCheckMemory show the filename and line number where the memory was allocated. ����e9�e= H��R�����������*0�����Note:If your module contains one or more implementations of serializable classes, then you must put the new redefinition statement after the last IMPLEMENT_SERIAL macro invocation. 3=�el�e(  ��������Returns_19�e��e. ,�b���������TRUE if no memory errors; otherwise FALSE. 3l�e��e(  ��������Example'��e%�e$ ���������e6�eG \���0���	��L
���	���L
���	����������CAge* pcage = new CAge( 21 ); // CAge is derived from CObjectAge* page = new Age( 22 );    // Age is NOT derived from CObject*(((char*) pcage) - 1) = 99;  // Corrupt preceding guard byte*(((char*) page) - 1) = 99;   // Corrupt preceding guard byteAfxCheckMemory();/*   T Y P I C A L    R E S U L T Smemory check error at $0067495F = $63, should be $FDDAMAGE: before Non-Object block at $00674960Non-Object allocated at file test02.cxx(48)�%�eJ�e, &���0���	��������Non-Object located at $00674960 is 2 bytes longmemory check error at $00674905 = $63, should be $FDDAMAGE: before Object block at $00674906Object allocated at file test02.cxx(47)Object located at $00674906 is 4 bytes long*/�s6�e��e1������������e,�e�fAfxDoForAllClassesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Object_Diagnostic_Functions')")>J�e,�e(  �,�������AfxDoForAllClasses�w��efD X���r�=���~������������void PASCAL AfxDoForAllClasses( void (*pfn)(const CRuntimeClass* pClass, void* pContext), void* pContext );,�efJ�e),�e5f& ��2������Kf�f2 4�2�R�=��~Q�=�����ParameterDescription$�5f�fR r���R�=��~�=�������������������pfnA pointer to an iteration function to execute for each class. The function arguments are a pointer to a CRuntimeClass object and an optional void pointer to extra data that the caller supplies to the function. pClassA pointer to a CRuntimeClass object. AfxDoForAllClasses uses this parameter to pass each eligible class in turn to the iteration function. pContextA pointer to optional data that the caller can supply to the iteration function. 4�f�f) "��2�������Remarks�Q�fzfQ p���2�������@#|ˀ���;�"���������Executes the specified iteration function for all CObject-derived classes in the application's memory space that support run-time type checking using the  DECLARE_DYNAMIC or DECLARE_SERIAL macros. The pointer passed to AfxDoForAllClasses in pContext is passed to the specified iteration function each time it is called. rG�f�f+ &���r����������Note:This function only works in the Debug version of the library. �szf�f1�����������f�fifAfxDoForAllObjectsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Object_Diagnostic_Functions')")>�f�f(  �,�������AfxDoForAllObjects�l�f~fD X���r�=���~������������void PASCAL AfxDoForAllObjects( void (*pfn)(CObject* pObject, void* pContext), void* pContext );)�f�f& ��2������K~f�f2 4�2�R�=��~Q�=�����ParameterDescriptionA��f3	fX ~���R�=��~�=���������������������pfnA pointer to an iteration function to execute for each object. The function arguments are a pointer to a CObject and an optional void pointer to extra data that the caller supplies to the function. pObjectA pointer to an object of class CObject or a class derived from it. AfxDoForAllObjects uses this parameter to pass each eligible object in turn to the iteration function. pContextA pointer to optional data that the caller can supply to the iteration function. 4�fg	f) "��2�������Remarks�K3	f�
fE X���2����������Ge+�������Executes the specified iteration function for all objects derived from CObject in the application's memory space. The objects must have been allocated with new; stack objects are not enumerated. The pointer passed to AfxDoForAllClasses in pContext is passed to the specified iteration function each time it is called. rGg	fif+ &���r����������Note:This function only works in the Debug version of the library. �y�
ff1.���������fVfSfAfxEnableMemoryTrackingEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')")CifVf(  �6�������AfxEnableMemoryTrackingk9f�f2 4�r�r�=���~������BOOL PASCAL AfxEnableMemoryTracking( BOOL bTrack );)Vf�f& ��2������K�f5
f2 4�2�R�=��~Q�=�����ParameterDescription}B�f�
f; F���R�=��~�=���������bTrackTRUE turns on memory tracking; FALSE turns it off. 45
f�
f) "��2�������Remarks��
f�f. *���2���������Diagnostic memory tracking is normally enabled in the Debug version of the Microsoft Foundation classes. Use this function to disable tracking on sections of your code that you know are allocating blocks correctly. Returns[5�
fSf& �j�2������The previous setting of the tracking-enable flag. �r�f@f1I���������@fI@f_GfAfxIsMemoryBlockEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')")Sf@fSf=SfI@f) "�(�2�������AfxIsMemoryBlock�c@f�@f> L���r�=���~����������BOOL PASCAL AfxIsMemoryBlock( const void* p, UINT nBytes, LONG* plRequestNumber = NULL );)I@fAf& ��2������K�@f^Af2 4�2�R���k~�������ParameterDescription�UAfCf^ ����R���k~�������������������������pA void pointer to the block of memory to be tested. nBytesThe length of the memory block in bytes. plRequestNumberA pointer to a long integer that will be filled in with the memory block's allocation sequence number. The variable pointed to by plRequestNumber will only be filled in if AfxIsMemoryBlock returns TRUE. 4^AfECf) "��2�������Remarks��Cf#EfF Z�1�2�����������������Tests a memory address to make sure it represents a currently active memory block that was allocated by the diagnostic version of new. It also checks the specified size against the original allocated size. The allocation sequence number that is returned in plRequestNumber if the function returns TRUE is the order in which the block was allocated relative to all other new allocations. Returns�bECf�Ef/ .���2���������TRUE if the memory block is currently allocated and the length is correct; otherwise FALSE. 4#Ef�Ef) "��2�������Example(�EfFf% ��0��������Ef�Ff4 6�?�0���	��L
���	����CAge* pcage = new CAge( 21 ); // CAge is derived from CObjectif( AfxIsMemoryBlock( pcage, sizeof( CAge ) ) != TRUE )    exit( 1 );   // Invalid memory4FfGf(  ��������See AlsoH�Ff_Gf/ .�2����u�Z΀�����AfxIsValidAddress �sGfHf1����������Hf@Hf�NfAfxIsValidAddressEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')")=_Gf@Hf(  �*�������AfxIsValidAddress�gHf�Hf> L���r�=���~����������BOOL FAR PASCAL AfxIsValidAddress( const void FAR* lp, UINT nBytes, BOOL bReadWrite = TRUE );)@HfIf& ��2������K�HfYIf2 4�2�R�=��~Q�=�����ParameterDescription��IfTJf@ N�w�R�=��~�=�������������lpPoints to the block of memory to be tested. nBytesContains the length of the memory block in bytes. bReadWriteSpecifies whether the memory is both for reading and writing. 4YIf�Jf) "��2�������Remarks��TJfVKf- (�C�2��������Tests any memory block to ensure that it is contained entirely within the program's memory space. The address is not restricted to blocks allocated by new. ���JfQLf8 >���r��������������Note:With MS-DOS real mode, only addresses with null selectors are invalid; all others are valid. A huge pointer cast to a FAR pointer cannot be used as a parameter to AfxIsValidAddress. 3VKf�Lf(  ��������Returns�sQLf%Mf. ,�����������TRUE if the specified memory block is contained entirely within the program's memory space; otherwise FALSE. 3�LfXMf(  ��������Example'%MfMf$ �������zXMf Nf' ���0���	����char* pbuf = (char*) malloc( 10 );if( AfxIsValidAddress( pbuf, 10, TRUE ) != TRUE )    exit( 1 );   // Invalid memory4MfTNf(  ��������See AlsoG Nf�Nf/ .�0����g*�k������AfxIsMemoryBlock �qTNf=Of1����������=OfxOf�fAfxSetAllocHookEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')");�NfxOf(  �&�������AfxSetAllocHookuC=Of�f2 4���r�=���~������AFX_ALLOC_HOOK AfxSetAllocHook( AFX_ALLOC_HOOKpfnAllocHook );xOf�f�Nf)xOf5�f& ��2������K�f��f2 4�2�R�e��~Q�e�����ParameterDescription��5�fV�fH ^��R�e��~�e�������������pfnAllocHookThe name of the function to call. The function must return a BOOL value and accept size_t, BOOL, and long arguments. 4��f��f) "��2�������Remarks��V�f6�f( �	�2�������Sets a hook that enables calling of the specified function each time memory is allocated. The hook function is described below. :��fp�f) "�"�2�������Hook Function��6�fl�f( ���2�������The Microsoft Foundation class library debug memory allocator can call a user-defined hook function to allow the user to control whether to permit the allocation. Allocation hook functions are prototyped as: �Vp�f�fR t���pȘR�������������������BOOL AllocHook( size_t nSize, BOOL bObject, LONG lRequestNumber ); Kl�f_�f2 4�2�R����~Q�������ParameterDescription��fc�fL f�q�R����~�������������������nSizeThe size of the proposed memory allocation. bObjectTRUE if the allocation is for a CObject-derived object. lRequestNumberThe memory allocation's sequence number. 3_�f��f(  ��������ReturnspBc�f�f. ,�����������TRUE if you want to permit the allocation; otherwise FALSE. �q��f��f1x�����������f�f*�fAfxSetAllocStopEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')");�f�f(  �&�������AfxSetAllocStopk9��fN�f2 4�r�r�=���~������void PASCAL AfxSetAllocStop( LONG lRequestNumber );)�fw�f& ��2������KN�f‡f2 4�2�R����~Q�������ParameterDescription�`w�fQ�f/ .���R����~�������lRequestNumberThe sequence number of the memory allocation on which the program will halt. 4‡f��f) "��2�������Remarks�lQ�f*�f9 @���2�������g*�k�����Each memory allocation is assigned a sequential serial number. This function forces the program to halt (using the INT 3 interrupt) on the specified memory allocation sequence number. This is useful if you are running the program from within a debugger. You can obtain the allocation sequence number to pass in lRequestNumber by calling AfxIsMemoryBlock. �k��fƊf1u���������Ɗf��f��fASSERT MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Macros')")9*�f��f) "� �2�������ASSERT MacroT"ƊfS�f2 4�D�r�=���~������ASSERT( booleanExpression );)��f|�f& ��2������KS�fNjf2 4�2�R�ŁW~Q�������ParameterDescription�d|�ff�f; F���R�ŁW~�����������booleanExpressionAn expression (including pointer values) that evaluates to TRUE or FALSE. 4Njf��f) "��2�������Remarks�f�f��f: B���2�������������The ASSERT macro evaluates its argument. If the result is FALSE, the macro prints a diagnostic message and aborts the program. If the condition is TRUE, it does nothing. The diagnostic message has the form: (��fՍf% ��0�����Y4��f.�f% �h�0���	��    assertion failed in file <name> in line <num>�fՍf�fR r��������������9�iQ����������where name is the name of the source file, and num is the line number of the assertion that failed in the source file. In the Release environment, ASSERT does not evaluate the expression and thus will not interrupt the program. If the expression must be evaluated regardless of environment, use the VERIFY macro in place of ASSERT. Example.�f�f*�f'.�f3�f$ ��������fB�fX ~�o�0���	��L
���	��>�B����	�%
	���	�a����	���CAge* pcage = new CAge( 21 ); // CAge is derived from CObjectASSERT( pcage->IsKindOf( RUNTIME_CLASS( CAge ) ) );// Terminates program only if pcage is NOT a CAge*43�fv�f(  ��������See Also=B�f��f/ .�����9�iQ������VERIFY �qv�fU�f1����������U�f��f��fASSERT_VALID MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Macros')")>��f��f(  �,�������ASSERT_VALID MacroOU�f��f2 4�:�r�=���~������ASSERT_VALID( object );)��f�f& ��2������K��fV�f2 4�2�R�=��~Q�=�����ParameterDescription�~�f�fA R���R�=��~�=������p�v������objectAn object of a class derived from CObject and with an overriding version of the AssertValid member function. 4V�fI�f) "��2�������Remarks�v�f"�fc ����2�������p�v��������������������Use to test your assumptions about the validity of an object's internal state. ASSERT_VALID calls the AssertValid member function of the object passed as its argument. By default, the AssertValid member function of class CObject is called, but typically you override AssertValid in classes that you derive from CObject so the overriding version will be called. In your AssertValid override, you can test the object's internal validity. For example, if the object represents a linked list, you could verify that the head and tail pointers are NULL if the list is empty and not NULL if the list is not empty. 5I�fW�f) "��2�������See Also�A"�f��fT x���2����>�B�����9�iQ�����L
����p�v�������ASSERT, VERIFY, CObject, CObject::AssertValid �zW�f��f1Q�����������f��f��fCMemoryState::CheckpointEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')")E��f��f) "�8�2�������CMemoryState::CheckpointB��f�f, (�,�r�=���~����void Checkpoint();)��fG�f& ��2������4�f{�f) "��2�������Remarks�G�f��fR r���2���������&U����֡���������Takes a snapshot summary of memory and stores it in this CMemoryState object. The CMemoryState member functions Difference and DumpAllObjectsSince use this snapshot data. Examplek9{�f��f2 4�r�2�����~n-Y�����See the example for the CMemoryState constructor. �|��f��f1������������f��fL�fCMemoryState::CMemoryStateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')")G��f��f) "�<�2�������CMemoryState::CMemoryState?��f/�f, (�&�r�=���~����CMemoryState();)��fX�f& ��2������4/�f��f) "��2�������Remarks��X�f`�fL f��2�������{kA����&U��������Constructs an empty CMemoryState object that must be filled in by the Checkpoint or Difference member functions. Example(��f��f% ��0������B`�fL�f� Ҁ��0���	�~n-Y���	��~n-Y���	��{kA���	����֡����	��{kA���	��&U���	���ք���	��// Includes all CMemoryState functions    CMemoryState cmOld, cmNew, cmDif;    cmOld.Checkpoint();    CAge* page1 = new CAge( 21 );    CAge* page2 = new CAge( 22 );    cmOld.DumpAllObjectsSince();    cmNew.Checkpoint();    cmDif.Difference( cmOld, cmNew );    cmDif.DumpStatistics();�z��fg1����������gPg�gCMemoryState::DifferenceEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')")L�fgL�fDL�fPg(  �8�������CMemoryState::Difference�Vg�g8 @���r�=���~��������BOOL Difference( const CMemoryState& oldState, const CMemoryState& newState );)Pgg& ��2������K�gRg2 4�2�R�=��~Q�=�����ParameterDescription��g5gD V�?�R�=��~�=�������������oldStateThe initial memory state, as defined by a CMemoryState checkpoint. newStateThe new memory state, as defined by a CMemoryState checkpoint. 4Rgig) "��2�������Remarks�5g|gF Z���2���������{kA��������Compares two checkpointed CMemoryState objects, then stores the difference into this CMemoryState object. Checkpoint must have been called for each of the two memory-state parameters. Examplek9ig�g2 4�r�2�����~n-Y�����See the example for the CMemoryState constructor. ��|g�g1�����������g�gogCMemoryState::DumpAllObjectsSinceEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')")N%�g�g) "�J�2�������CMemoryState::DumpAllObjectsSinceQ%�g:g, (�J�r�=���~����void DumpAllObjectsSince() const;)�gcg& ��2������4:g�g) "��2�������Remarks9�cg�gk ����2�����V���������{kA����������������������Calls the Dump function for all objects of derived CObject classes that were allocated (and are still allocated) since the last Checkpoint call for this CMemoryState object. Use DumpAllObjectsSince in conjunction with AfxCheckMemory to match reported corrupted memory with the contents of the objects contained there. Calling DumpAllObjectsSince with an uninitialized CMemoryState object will dump out all objects currently in memory. 4�gg) "��2�������Examplek9�gog2 4�r�2�����~n-Y�����See the example for the CMemoryState constructor. �~g	g1���������	gg	gK
gCMemoryState::DumpStatisticsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Functions')")I ogg	g) "�@�2�������CMemoryState::DumpStatisticsL 	g�	g, (�@�r�=���~����void DumpStatistics() const;)g	g�	g& ��2������4�	g
g) "��2�������Remarks���	g�
g? L�_�2���������&U�����Prints, on afxDump, a concise memory statistics report from a CMemoryState object that is filled by the Difference member function. The report shows the following: k3
gig8 @�h�R��2�h��"������CObject blocks still allocated on the heap. o7�
g�g8 @�p�R��2�h��"������Non-CObject blocks still allocated on the heap. o=igGg2 4�|�R��2�h��"����The maximum memory used by the program at any one time. g5�g�g2 4�l�R��2�h��"����The total memory currently used by the program. 3Gg�g(  ��������Examplej9�gK
g1 2�r�����~n-Y�����See the example for the CMemoryState constructor. �j�g�
g1@����������
gg�AgTRACE MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Macros')")7K
gg(  ��������TRACE MacroE�
gbg2 4�&�r�=���~������TRACE( exp );)g�g& ��2������Kbg�g2 4�2�R�=��~Q�=�����ParameterDescription�q�g|g5 :���R�=��~�=�������expA variable number of arguments used exactly in the same way as the run-time function printf uses them. 4�g�g) "��2�������Remarks.�|g�@g: B���2�������������In the Debug environm�g�@gK
gent, the TRACE macro output goes to afxDump. In the Release environment, it does nothing. This is a convenient way of generating debugging output that will appear only in the Debug version of your program. Example(�gAg% ��0������z�@g�Ag4 8���0���	���y����	���int i = 1;char sz[] = "one";TRACE( "Integer = %d, String = %s\n", i, sz );// Output: 'Integer = 1, String = one'�kAg\Bg1����������\Bg�BgIgVERIFY MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `General_Diagnostic_Macros')")8�Ag�Bg(  � �������VERIFY MacroT"\Bg�Bg2 4�D�r�=���~������VERIFY( booleanExpression );)�BgCg& ��2������K�Bg\Cg2 4�2�R�=��~Q�=�����ParameterDescription�VCg�Cg; F���R�=��~�=���������expAn expression (including pointer values) that evaluates to TRUE or FALSE. 4\Cg!Dg) "��2�������RemarksR�CgsEg: B�1�2�������������In the Debug version of the Microsoft Foundation class library, the VERIFY macro evaluates its argument. If the result is FALSE, the macro prints a diagnostic message and halts the program. If the condition is TRUE, it does nothing. The diagnostic message has the form: (!Dg�Eg% ��0�����Y4sEg�Eg% �h�0���	��    assertion failed in file <name> in line <num>�c�Eg�Gg@ N������������������where name is the name of the source file and num is the line number of the assertion that failed in the source file. In the Release version of the Microsoft Foundation class library, VERIFY evaluates the expression but does not print or interrupt the program. For example, if the expression is a function call, the call will be made. Example'�Eg�Gg$ ���������Gg�HgU x�5�0��������	��9�iQ���	������	������	���CFile f;VERIFY( f.Open( "file.dat", CFile::modeCreate | CFile::modeWrite ) );// Terminates program if Open fails; always executes Open4�Gg�Hg(  ��������See Also=�HgIg/ .�����>�B�������ASSERT �c�Hg�Ig1�����������Ig�Ig|MgException ProcessingEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_012')")@Ig�Ig(  �0�������Exception Processing���Ig�Jg' �9�������This topic describes macros and global functions that relate to exception processing. The diagnostic services fall into the following three categories: ��Ig�KgR r���R�˂Q}���5�Op�������������㶜�ڀ�����Exception MacrosMacros that generate exceptions. Exception Throwing FunctionsFunctions that generate exceptions. Termination FunctionsFunctions that cause program termination. �}�Jg�Lg< H���R����������t�����Note:The AfxThrow functions are equivalent to the THROW macro with the appropriate exception class as an argument. ���Kg;Mg4 6�	������������To use these macros and global functions, add the following directive at the top of your program: #include <afx.h> See AlsoA�Lg|Mg/ .�$������G������CException �j;MgNg1����������NgSNg�gException MacrosEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Processing')")<|MgSNg(  �(�������Exception MacrosmNgj�g� 
���R����~����	������3��������	�����q�ր�����	������!�R�����3������q�ր����t������TRYDesignates a block of code for exception processing. CATCHDesignates a block for catching an exception from the preceding TRY block. AND_CATCHDesignates a block for catching additional exception types from the preceding TRY block. END_CATCHSNgj�g|MgEnds the last CATCH or AND_CATCH block. THROWThrows a specified exception. }HSNg�g5 :���R����~���]52E������THROW_LASTInvokes the exception handler in the next outer frame. �vj�g��g1������������gցg�gException Throwing FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Processing')")H �gցg(  �@�������Exception Throwing Functions�;��g�gn ��w�R�'��|�'���J������\[,U������+<:\������9���������ǀ�����AfxThrowArchiveExceptionThrows an archive exception. AfxThrowFileExceptionThrows a file exception. AfxThrowMemoryExceptionThrows a memory exception. AfxThrowNotSupportedExceptionThrows a not-supported exception. AfxThrowResourceExceptionThrows a Windows resource-not-found exception. �oցg�g1�����������g`�g˅gTermination FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Processing')")A�g`�g(  �2�������Termination Functionsk��g˅g� Ҁ��R�ˁQ~���R�a������	����3����������������R�a������sX������R�a�����AfxTerminateCalled internally if there is no applicable TRY/CATCH in effect. AfxSetTerminateSets the final destination of calls to AfxTerminate. AfxAbortThe default function called by AfxTerminate. �c`�g_�g1����������_�g��g-�gAfxAbortEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Termination_Functions')")4˅g��g(  ��������AfxAbortF_�gنg, (�4�r�=���~����void CDECL AfxAbort();)��g�g& ��2������4نg6�g) "��2�������Remarks�e�gȇg- *���2���������This is the default termination function supplied by the Microsoft Foundation classes. See Alsoe)6�g-�g< H�R�2������������R�a������AfxSetTerminate, AfxTerminate �jȇgȈg1����������Ȉg�g��gAfxSetTerminateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Termination_Functions')")<-�g�g) "�&�2�������AfxSetTerminatel:Ȉgp�g2 4�t�r�=���~������AFX_TERM_PROC AfxSetTerminate( AFX_TERM_PROC proc );)�g��g& ��2������Kp�g�g2 4�2�R�=��~Q�=�����ParameterDescription����g��g< F�-�R�=��~�=����R�a�����procThe name of a termination function that will be called by AfxTerminate. Termination functions must take no arguments and return nothing. 4�g�g) "��2�������RemarksF���g0�gL f���2�����R�a�����sX�����������Links AfxTerminate to the specified function. The default termination function is AfxAbort. AfxTerminate is called internally by Microsoft Foundation member functions when there is a fatal error, such as an uncaught exception. Example(�gX�g% ��0������k0�g�gN j���0���	��sX����	�������������R�a���	������void MyTerminateProc()  // Called instead of AfxAbort{    printf( "Out of memory!\n" );    exit( 1 );}void main(){    AfxSetTerminate( MyTerminateProc );    while  ( 1 )    {        // new calls AfxTerminate if unsuccessful        BYTE * p = new BYTE[1024];        // Consume memory        printf( "consumed memory at $%x\n", p );    }}4X�gE�g(  ��������See Also]"�g��g; F�D�����sX�����R�a������AfxAbort, AfxTerminate �gE�g:�g1����������:�gr�gU�gAfxTerminateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Termination_Functions')")8��gr�g(  � �������AfxTerminateJ:�g��g, (�<�r�=���~����void CDECL AfxTerminate();)r�g�g& ��2��������g�g��g4��g@�g) "��2�������Remarks�a�g��gS t���2��������sX��������������������Called internally by Microsoft Foundation member functions when there is a fatal error, such as an uncaught exception. Normally, AfxTerminate calls AfxAbort, but you can use AfxSetTerminate to enable the calling of a different function. You can call AfxTerminate any time you encounter an error from which you cannot recover. See Alsoa%@�gU�g< H�J�2�����sX���������������AfxAbort, AfxSetTerminate �z��g�g1�����������gE�g��gAfxThrowArchiveExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Throwing_Functions')")EU�gE�g) "�8�2�������AfxThrowArchiveExceptionj8�g��g2 4�p�r�=���~������void PASCAL AfxThrowArchiveException( int cause );)E�g��g& ��2������K��g#�g2 4�2�R�=��~Q�=�����ParameterDescription����g��g< F��R�=��~�=����)�E������causeAn integer that indicates the reason for the exception. For a list of the possible values, see CArchiveException::m_cause. 4#�g�g) "��2�������Remarks�y��g��g, (���2��������Throws CArchiveException. This is a helper function used in the implementation of the Microsoft Foundation classes. �w�gi�g1����������i�g��g�gAfxThrowFileExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Throwing_Functions')")B��g��g) "�2�2�������AfxThrowFileException�Ki�g.�g8 @���r�=���~��������void PASCAL AfxThrowFileException( int cause, LONG lOsError = -1 );)��gW�g& ��2������K.�g��g2 4�2�R�=��~Q�=�����ParameterDescriptionhW�g
�gP n�1�R�=��~�=����M�j����������causeAn integer that indicates the reason for the exception. For a list of the possible values, see CFileException::m_cause. lOsErrorAn operating-system-specific reason for the exception, if available. The lOsError parameter provides more information than cause. 4��g>�g) "��2�������Remarkss>
�g��g5 8�}�2������������Throws a CFileException. You are responsible for determining the cause based on the operating system error code. This is a helper function used in the implementation of the Microsoft Foundation classes. Call this function when you implement your own low-level file operations in a derived file class. See AlsoT$>�g�g0 0�H�2����:Y��������CFileException::ThrowOsError �y��g��g1c�����������g��g%�gAfxThrowMemoryExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Throwing_Functions')")D�g��g) "�6�2�������AfxThrowMemoryExceptionV*��gI�g, (�T�r�=���~����void PASCAL AfxThrowMemoryException();)��gr�g& ��2������4I�g��g) "��2�������Remarks9r�g%�gF Z�s�2�����������������Throws a CMemoryException. This is a helper function used in the implementation of the Microsoft Foundation classes. Call this function if calls to underlying system memory allocators (such as malloc and ::GlobalAlloc) fail. You do not need to call it for new because new makes the call internally. ���g��g1������������g�g�hAfxThrowNotSupportedExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Throwing_Functions')")J!%�g�g) "�B�2�������AfxThrowNotSupportedException\0��g{�g, (�`�r�=���~����void PASCAL AfxThrowNotSupportedException();)�g��g& ��2������4{�g��g) "��2�������Remarks����g�h- (��2�������g�h%�g���Throws a CNotSupportedException. This is a helper function used in the implementation of the Microsoft Foundation classes. �{��g=h1E���������=h�h�hAfxThrowResourceExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Throwing_Functions')")F�h�h) "�:�2�������AfxThrowResourceExceptionX,=h�h, (�X�r�=���~����void PASCAL AfxThrowResourceException();)�hh& ��2������4�h8h) "��2�������Remarks��h!h- (�y�2��������Throws a CResourceException. It is normally called when a Windows resource cannot be loaded. This is a helper function used in the implementation of the Microsoft Foundation classes. vE8h�h1 2���r������������Note:This function requires the statement #include <afxwin.h>. �e!h-h1I���������-hhh�hAND_CATCH MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Macros')");�hhh(  �&�������AND_CATCH Macro{C-h�h8 @���r�=���~��������AND_CATCH( exception_class, exception_object_pointer_name ))hhh& ��2������K�hWh2 4�2�R���{}Q�������ParameterDescription�@h�hJ b���R���{}��������G�����������exception_classThe specific exception type to test for. For a list of standard exception classes, see CException. exception_object_pointer_nameA name for an exception object pointer that will be created by the macro. You can use the pointer name to access the exception object within the AND_CATCH block. 4Whh) "��2�������Remarks@��hU	hX ~���2������	����3���������]52E�������Defines a block of code for catching additional exception types thrown in a preceding TRY block. Use the CATCH macro to catch one exception type, then the AND_CATCH macro to catch each subsequent type. The exception-processing code can interrogate the exception object, if appropriate, to get more information about the specific cause of the exception. Invocation of the THROW_LAST macro within the AND_CATCH block shifts processing to the next outer exception frame. ��hH
h8 >�w�r���������q�ր����Note:The AND_CATCH block is defined as a C++ scope (delineated by curly braces). If you declare variables in this scope, remember that they are accessible only within that scope. �XU	h�
hA R��������3������������AND_CATCH marks the end of the preceding CATCH or AND_CATCH block. See Also�@H
h�h_ ��������	����3������t�����!�R����]52E������TRY, CATCH, THROW, END_CATCH, THROW_LAST �a�
hh1o���������hIhXDhCATCH MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Macros')")7�hIh(  ��������CATCH Macrow?h�h8 @�~�r�=���~��������CATCH( exception_class, exception_object_pointer_name ))Ih�h& ��2������K�h4
h2 4�2�R���{}Q�������ParameterDescription�<�h�hJ b�y�R���{}��������G�����������exception_classThe specific exception type to test for. For a list of standard exception classes, see CException. exception_object_pointer_nameA name for an exception object pointer that will be created by the macro. You can use the pointer name to access the exception object within the CATCH block. 44
h�h) "��2�������Remarks�Y�h�@h? L���2������	����]52E�����Defines a block of code for catching the first exception type thrown in a preceding TRY block. The exception-processing code can interrogate the exception object, if appropriate, to get more information abo�h�@h�hut the specific cause of the exception. Invocation of the THROW_LAST macro shifts processing to the next outer exception frame. ���h�Ah8 >�o�r���������3�������Note:The CATCH block is defined as a C++ scope (delineated by curly braces). If you declare variables in this scope, remember that they are accessible only within that scope. w-�@h�BhJ b�[���������%
	����q�ր����If exception_class is CException, then all exception types will be caught. You can use CObject::IsKindOf to determine which specific exception was thrown. A better way to catch several kinds of exceptions is to use sequential AND_CATCH statements, each with a different exception type. �_�Ah�Ch* $���R���������Note:The exception object is created by the macro. You do not need to declare it yourself. 4�Bh�Ch(  ��������See Also�D�ChXDh_ ��������	����q�ր����!�R����t����]52E������TRY, AND_CATCH, END_CATCH, THROW, THROW_LAST �e�Ch�Dh1�����������Dh)Eh�FhEND_CATCH MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Macros')");XDh)Eh(  �&�������END_CATCH Macro6�Dh_Eh(  ��������END_CATCH 4)Eh�Eh) "��2�������Remarks�J_Eh"FhE Z���2�����3������q�ր�������Marks the end of the last CATCH or AND_CATCH block. See Also�@�Eh�Fh` ����2�����	����3������t����q�ր���]52E������TRY, CATCH, THROW, AND_CATCH, THROW_LAST �e"FhXGh1���������XGh�Gh-KhTHROW MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Processing')")8�Fh�Gh) "��2�������THROW MacroZ(XGh�Gh2 4�P�r�=���~������THROW( exception_object_pointer );)�GhHh& ��2������K�Gh^Hh2 4�2�R�'��}Q�'�����ParameterDescription�VHh�Hh5 :���R�'��}�'�������exception_object_pointerPoints to an exception object derived from CException. 4^HhIh) "��2�������Remarksl,�Hh�Jh@ N�Y�2�����3������������Throws the specified exception. It interrupts program execution, passing control to the associated CATCH block in your program. If you have not provided the CATCH block, then control is passed to a Microsoft Foundation class library module that prints an error message and exits. See Also�DIh-Kh` ����2�����	����3������]52E����q�ր����!�R������TRY, CATCH, THROW_LAST, AND_CATCH, END_CATCH �f�Jh�Kh1����������KhLh�hTHROW_LAST MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Macros')")=-KhLh) "�(�2�������THROW_LAST Macro=�Kh>Lh, (�"�r�=���~����THROW_LAST();)LhgLh& ��2������4>Lh�Lh) "��2�������RemarksZgLh�NhF Z�)�2�����3���������3�������Rethrows the exception back to the next outer CATCH block. If your code does not contain an outer block, then the Microsoft Foundation class library prints an appropriate error message and terminates the program, just as it would if you provided no exception-processing logic. This allows you to throw a locally created exception. If you try to throw an exception that you have just caught, it will normally go out of scope and be deleted. With THROW_LAST, the exception is passed correctly to the next CATCH handler. 5�Lh*Oh) "��2�������See Also�?�Nh�h` ��~�2�����	����3������t����q�ր����!�R������TRY, CATCH, THROW, AND_CATCH, END_CATCH *Oh�h-Kh�_*Oh��h1�����������hҀhD�hTRY MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Exception_Macros')")6
�hҀh) "��2�������TRY Macro0��h�h(  ��������TRY 4Ҁh6�h) "��2�������Remarksd�h��hQ p�'�2�����3������q�ր�����]52E�����Identifies a block of code that might throw exceptions. Those exceptions are handled in the following CATCH and AND_CATCH blocks. Recursion is allowed: exceptions may be passed to an outer TRY block, either by ignoring them or by using the THROW_LAST macro. ��6�h��h8 >�k�r����������	�����Note:The TRY block is defined as a C++ scope (delineated by curly braces). If you declare variables in this scope, remember that they are accessible only within that scope. 4��h��h(  ��������See Also�6��hD�hS v�l����t����3������q�ր����!�R������THROW, CATCH, AND_CATCH, END_CATCH T#��h��h1{����������hӄh�hFindStringExactDisableButton("up");D�hӄh(  �&�������FindStringExact����h��h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �Cӄh�hC V���R��:�`���AÂg�����ヿ�q�����CComboBox::FindStringExact CListBox::FindStringExact R!��ho�h1w��������o�h��h�hGetItemHeightDisableButton("up")9�h��h(  �"�������GetItemHeight��o�hl�h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �?��h�hC V�~�R��:�`���l��ހ����㾏�����CComboBox::GetItemHeight CListBox::GetItemHeight R!l�h@�h1w��������@�hy�h��hSetItemHeightDisableButton("up")9�hy�h(  �"�������SetItemHeight��@�h=�h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �?y�h��hC V�~�R��:�`���8ȹ=�������(f�����CComboBox::SetItemHeight CListBox::SetItemHeight T#=�h�h1x���������hN�h��hEnableScrollBarDisableButton("up");��hN�h(  �&�������EnableScrollBar���h�h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �@N�h��hC V���R��:�`����e}������hg�������CWnd::EnableScrollBar CScrollBar::EnableScrollBar R!�h�h1t���������h �hc�hShowScrollBarDisableButton("up")9��h �h(  �"�������ShowScrollBar���h�h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: < �hc�hC V�x�R��:�`���g/�O�������ռ������CWnd::ShowScrollBar CScrollBar::ShowScrollBar N�h��h1o����������h�h$�hAddStringDisableButton("up")5
c�h�h(  ��������AddString����h��h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: z7�h$�hC V�n�R��:�`���_u2������a�y�����CComboBox::AddString CListBox::AddString K��ho�h1f��������	o�h��h��hAttachDisableButton("up")2
$�h��h(  ��������Attach��o�hq�h& �=������The identifier you have selected corresponds to member f��hq�h$�hunctions in several Foundation classes. Select the specific function you want from the list below: q.��h��hC V�\�R��:�`���uE�v������!�}�����CGdiObject::Attach CWnd::Attach Jq�h,�h1d��������
,�h]�h��hClearDisableButton("up")1	��h]�h(  ��������Clear��,�h!�h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: o,]�h��hC V�X�R��:�`���%T�3��������� �����CComboBox::Clear CEdit::Clear J!�h��h1�����������h�hd�hCloseDisableButton("up")1	��h�h(  ��������Close����h��h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �D�hd�hQ r���R��:�`���Yu=؀������%��������Հ����CArchive::Close CFile::Close CMetaFileDC::Close I��h��h1b����������h��h�hCopyDisableButton("up")0d�h��h(  ��������Copy����h��h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: m*��h�hC V�T�R��:�`���%Où������w������CComboBox::Copy CEdit::Copy K��hY�h1���������
Y�h��h:�hCreateDisableButton("up")2
�h��h(  ��������Create��Y�hO�h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: ���h:�h� n�7�R��:�`���ᥣF�������"5�������R������վ�������㓑7�������N��À�����D�S������S�ȝ���������������h������%����������Ԏ�����CButton::Create CComboBox::Create CDialog::Create CEdit::Create CFrameWnd::Create CListBox::Create CMDIChildWnd::Create CMDIFrameWnd::Create CMetaFileDC::Create CScrollBar::Create CStatic::Create CWnd::Create S"O�h��h1{����������h��h�hCreateIndirectDisableButton("up")::�h��h(  �$�������CreateIndirect����h��h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �C��h�hC V���R��:�`���ٛ���������'�X�����CDialog::CreateIndirect CModalDialog::CreateIndirect H��hY�h1`��������Y�h��h��hCutDisableButton("up")/�h��h(  ��������Cut��Y�hL�h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: k(��h��hC V�P�R��:�`����s��������Z8ڀ����CComboBox::Cut CEdit::Cut Q L�h�h1u���������h@�h��hDeleteStringDisableButton("up")8��h@�h(  � �������DeleteString���h�h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �=@�h��hC V�z�R��:�`���48��������*b͆�����CComboBox::DeleteString CListBox::DeleteString R!�h��h1t����������h�h^iDeleteTempMapDisableButton("up")9��h�h(  �"�������DeleteTempMap����h��h& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: <�h^iC V�x�R��:�`���rS���h^i��h������:������CGdiObject::DeleteTempMap CWnd::DeleteTempMap K��h�i1����������i�i2iDetachDisableButton("up")2
^i�i(  ��������Detach���i�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �B�i2iQ r���R��:�`���GH؍������a),������q$������CGdiObject::Detach CMenu::Detach CWnd::Detach H�izi1c��������zi�i�iDirDisableButton("up")/2i�i(  ��������Dir��zimi& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: n+�i�iC V�V�R��:�`���-y�������O������CComboBox::Dir CListBox::Dir Imi$i1b��������$iTi�iFindDisableButton("up")0�iTi(  ��������Find��$ii& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: m*Ti�iC V�T�R��:�`���9eC�������c������CObList::Find CString::Find Oi�i1q���������i
iJiFindStringDisableButton("up")6�i
i(  ��������FindString���i�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: |9
iJiC V�r�R��:�`��㒗�������8�݀����CComboBox::FindString CListBox::FindString J�i�i1����������i�i	iFlushDisableButton("up")1	Ji�i(  ��������Flush���i�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �E�i	iQ r���R��:�`���� �؀�����P���������������CArchive::Flush CDumpContext::Flush CFile::Flush K�ij	i1f��������j	i�	i�
iFormatDisableButton("up")2
	i�	i(  ��������Format��j	i`
i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: q.�	i�
iC V�\�R��:�`����4�-������=+������CTime::Format CTimeSpan::Format O`
i i1W�������� iVi|
iFromHandleDisableButton("up")6�
iVi(  ��������FromHandle�� ii& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: b�Vi|
i� ����R��:�`���H��������㑧Qk������n�������=`������<�������� ��������h!��������Z�?�����CBitmap::FromHandle CBrush::FromHandle CFont::FromHandle CGdiObject::FromHandle CPalette::FromHandle CPen::FromHandle CRgn::FromHandle CWnd::FromHandle Ji�
i1����������
i�
iNiGetAtDisableButton("up")1	|
i�
i(  ��������GetAt���
i�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �B�
iNiQ r���R��:�`���&�[��������{�������5�g�����CObArray::GetAt CObList::GetAt CString::GetAt R!�i�i1����������i�iAiGetChildFrameDisableButton("up")9Ni�i(  �"�������GetChildFrame���i�@i& �=�������i�@iNiThe identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: v?�iAi7 >�~�R��:�`����������CFrameWnd::GetChildFrame CMDIFrameWnd::GetChildFrame M�@ilAi1���������lAi�Ai/CiGetCountDisableButton("up")4Ai�Ai(  ��������GetCount��lAidBi& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �l�Ai/Ci_ ����R��:�`����l	�������Xʀ�����
 '������QV������CComboBox::GetCount CListBox::GetCount CMapStringToOb::GetCount CObList::GetCount NdBi}Ci1o��������}Ci�Ci�DiGetCurSelDisableButton("up")5
/Ci�Ci(  ��������GetCurSel��}CivDi& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: z7�Ci�DiC V�n�R��:�`���H�ʶ������:��������CComboBox::GetCurSel CListBox::GetCurSel PvDi@Ei1s��������@EiwEi�FiGetItemDataDisableButton("up")7�DiwEi(  ��������GetItemData��@Ei;Fi& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: ~;wEi�FiC V�v�R��:�`����C��������PUS�����CComboBox::GetItemData CListBox::GetItemData N;FiGi1j��������Gi<GiuHiGetLengthDisableButton("up")5
�Fi<Gi(  ��������GetLength��GiHi& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: u2<GiuHiC V�d�R��:�`�����߀������U!a�����CFile::GetLength CString::GetLength S"Hi�Hi1u���������HiIiFJiGetParentFrameDisableButton("up"):uHiIi(  �$�������GetParentFrame���Hi�Ii& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �CIiFJi= J���R��:�`�������5Id�����CFrameWnd::GetParentFrame CMDIChildWnd::GetParentFrame Q �Ii�Ji1r�������� �Ji�JiLiGetScrollPosDisableButton("up")8FJi�Ji(  � �������GetScrollPos���Ji�Ki& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: }:�JiLiC V�t�R��:�`����Df̀��������������CScrollBar::GetScrollPos CWnd::GetScrollPos S"�KicLi1v��������!cLi�Li�MiGetScrollRangeDisableButton("up"):Li�Li(  �$�������GetScrollRange��cLiaMi& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �>�Li�MiC V�|�R��:�`���};�N������EJq�����CScrollBar::GetScrollRange CWnd::GetScrollRange KaMi-Ni1e��������"-Ni_Ni�OiGetSelDisableButton("up")2
�Mi_Ni(  ��������GetSel��-Ni#Oi& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: p-_Ni�OiC V�Z�R��:�`�����)�������^�$�����CEdit::GetSel CListBox::GetSel Q #Oi�i1z��������#�iD�i��iInsertStringDisableButton("up")�Oi�i�Oi8�OiD�i(  � �������InsertString���i�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �=D�i��iC V�z�R��:�`���a�s��������Q�����CComboBox::InsertString CListBox::InsertString L�iԁi1���������$ԁi�ij�iIsEmptyDisableButton("up")3��i�i(  ��������IsEmpty��ԁi˂i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �N�ij�iQ r���R��:�`�����K������<uڀ�����=������CMapStringToOb::IsEmpty CObList::IsEmpty CString::IsEmpty N˂i��i1l��������%��i�i(�iLimitTextDisableButton("up")5
j�i�i(  ��������LimitText����i��i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: w4�i(�iC V�h�R��:�`����um�������C�_
�����CComboBox::LimitText CEdit::LimitText P��ix�i1z��������&x�i��i��iMDIActivateDisableButton("up")7(�i��i(  ��������MDIActivate��x�is�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �B��i��iC V���R��:�`����xˀ�����	ND�����CMDIChildWnd::MDIActivate CMDIFrameWnd::MDIActivate Ps�iH�i1z��������'H�i�iȈiMDIMaximizeDisableButton("up")7��i�i(  ��������MDIMaximize��H�iC�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �B�iȈiC V���R��:�`���n:�p������c�������CMDIChildWnd::MDIMaximize CMDIFrameWnd::MDIMaximize OC�i�i1x��������(�iM�i��iMDIRestoreDisableButton("up")6ȈiM�i(  ��������MDIRestore���i�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �@M�i��iC V���R��:�`���@�>������㟥�ʀ����CMDIChildWnd::MDIRestore CMDIFrameWnd::MDIRestore J�iފi1d��������)ފi�iB�iPasteDisableButton("up")1	��i�i(  ��������Paste��ފiӋi& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: o,�iB�iC V�X�R��:�`����c6�������#�����CComboBox::Paste CEdit::Paste X'Ӌi��i1}��������*��iٌi%�iPreTranslateMessageDisableButton("up")?B�iٌi(  �.�������PreTranslateMessage����i��i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �Eٌi%�iC V���R��:�`���X�1������.��[�����CWinApp::PreTranslateMessage CWnd::PreTranslateMessage I��in�i1a��������+n�i��i�iReadDisableButton("up")0%�i��i(  ��������Read��n�ib�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: l)��i�iC V�R�R��:�`���qw
������U�A�����CArchive::Read CFile::Read b�i�i%�iNb�iZ�i1���������,Z�i��i��iRemoveAllDisableButton("up")5
�i��i(  ��������RemoveAll��Z�iS�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �U��i��iQ r���R��:�`���ń���������U8������1�������CMapStringToOb::RemoveAll CObArray::RemoveAll CObList::RemoveAll MS�iF�i1k��������-F�iz�i��iRemoveAtDisableButton("up")4��iz�i(  ��������RemoveAt��F�i>�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: v3z�i��iC V�f�R��:�`���6eO������dž"�����CObArray::RemoveAt CObList::RemoveAt Q >�i�i1u��������.�i=�i��iResetContentDisableButton("up")8��i=�i(  � �������ResetContent���i�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �==�i��iC V�z�R��:�`���v��^������l�'<�����CComboBox::ResetContent CListBox::ResetContent Q �i��i1r��������/��i
�iK�iSelectObjectDisableButton("up")8��i
�i(  � �������SelectObject����i��i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: }:
�iK�iC V�t�R��:�`����`.�������[�����CDC::SelectObject CMetaFileDC::SelectObject V%��i��i1|��������0��i��i)�iSelectStockObjectDisableButton("up")=K�i��i(  �*�������SelectStockObject����i��i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �D��i)�iC V���R��:�`���_�;������.��V�����CDC::SelectStockObject CMetaFileDC::SelectStockObject Q ��iz�i1u��������1z�i��i��iSelectStringDisableButton("up")8)�i��i(  � �������SelectString��z�iv�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �=��i��iC V�z�R��:�`���6�j�������_H�����CComboBox::SelectString CListBox::SelectString Jv�i@�i1���������2@�iq�i��iSetAtDisableButton("up")1	��iq�i(  ��������SetAt��@�i5�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �^q�i��i_ ����R��:�`�����������r�ͥ������=|�������j�����CMapStringToOb::SetAt CObArray::SetAt CObList::SetAt CString::SetAt N5�i@�i1o��������3@�iu�i��iSetCurSelDisableButton("up")5
��iu�i(  ��������SetCurSel��@�i9�i& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: z7u�i��iC V�n�R��:�`����w+�������yMr�����CComboBox::SetCurSel CListBox::SetCurSel P9�i�i1s��������4�i:�i�jSetItemDataDisableButton("up")7��i:�i(  ��������SetItemData���ij& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: :�ij��i~;:�i�jC V�v�R��:�`������������_�����CComboBox::SetItemData CListBox::SetItemData Lj�j1d��������5�j	j<jSetRectDisableButton("up")3�j	j(  ��������SetRect���j�j& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: o,	j<jC V�X�R��:�`���qo�������k�:!�����CEdit::SetRect CRect::SetRect Q �j�j1r��������6�j�jjSetScrollPosDisableButton("up")8<j�j(  � �������SetScrollPos���j�j& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: }:�jjC V�t�R��:�`���4�ڀ�����O`������CScrollBar::SetScrollPos CWnd::SetScrollPos S"�jYj1v��������7Yj�j�jSetScrollRangeDisableButton("up"):j�j(  �$�������SetScrollRange��YjWj& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �>�j�jC V�|�R��:�`�����J��������al�����CScrollBar::SetScrollRange CWnd::SetScrollRange KWj#j1e��������8#jUj�jSetSelDisableButton("up")2
�jUj(  ��������SetSel��#jj& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: p-Uj�jC V�Z�R��:�`���P������"�JM�����CEdit::SetSel CListBox::SetSel Pj�j1o��������9�jjN	jSetTabStopsDisableButton("up")7�jj(  ��������SetTabStops���j�j& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: z7jN	jC V�n�R��:�`���mħ�������Ф�y�����CEdit::SetTabStops CListBox::SetTabStops J�j�	j1c��������:�	j�	j�
jWriteDisableButton("up")1	N	j�	j(  ��������Write���	j�
j& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: n+�	j�
jC V�V�R��:�`���t�W܀������j@�����CArchive::Write CFile::Write L�
jGj1y��������;Gjzj�jm_causeDisableButton("up")3�
jzj(  ��������m_cause��Gj>j& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �Azj�jC V���R��:�`���)�E�������M�j��CArchiveException::m_cause CFileException::m_cause K>j

j1���������<

j?
j�jm_hWndDisableButton("up")2
�j?
j(  ��������m_hWnd��

jj& �=������The identifier you have selected corresponds to member functions in several Foundation classes. Select the specific function you want from the list below: �E?
j�jQ r���R��:�`���z�F�������g�w������Sj1�����CClientDC::m_hWnd CWindowDC::m_hWnd CWnd::m_hWnd �jj4j1J��������=4j{jyBjMacros and Global FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_012')")G�j{j(  �>�������Macros and Global Functions,4j�Aj' ��������This topic briefly describes the macros and global functions available to simplify your progr{j�Aj�jamming with the Microsoft Foundation Class Library. Most programmers will find that the macros presented here meet most of their needs. Advanced programmers may wish to use some of the global functions provided for special needs. All macros are listed in alphabetical order, followed by all global functions in alphabetical order. A few items not documented elsewhere are documented following the alphabetical listings. b!{jBjA R�B�R���c~���2êۀ����$�m������MacrosGlobal Functionsd3�AjyBj1 2�f�����$I�����For easy reference, see the Category Table. �vBj Cj1u��������> CjaCj�EjGlobal Category TableEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Global_Functions_and_Macros')")AyBjaCj(  �2�������Global Category Table�� CjCDj3 4�_�����������The following category table shows where to find related discussion and examples in other parts of the Class Libraries Reference and the Class Libraries User's Guide: baCj�EjZ ���R�G��{�cG�����������������������������CategoryReference ChaptersUser's Guide Chapters DiagnosticsChapter 4Chapters 2, 4, 11 ExceptionsChapter 5Chapters 2 and 12 Message MapChapter 6Chapters 3 and 14 Run-Time Class InformationCObjectChapter 8 SerializationCObjectChapter 10 �CDjUFj1��������?UFj�Fjw�jAlphabetical Listing of MacrosEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Global_Functions_and_Macros')")J"�Ej�Fj(  �D�������Alphabetical Listing of Macros��UFjRGj& �������To find additional discussion and examples for a macro, see the table above, using the category specified in the macro description below. ��FjiIjr ��K�R�łW}���q�ր�����	������$I�����>�B����������$I�����AND_CATCHDesignates a block of code for catching the second or subsequent exception from the preceding TRY block. For additional linformation, see the Exceptions category in the table. ASSERTPrints a message and aborts the application if the specified expression evaluates to FALSE in the Debug version of the library. For additional information, see the Diagnostics category in the table. c�RGj�Kj� 怯�R�łW}���y������p�v���������$I�����R��?�������$I�����3��������	�����ASSERT_VALIDTests the internal validity of an object by calling its AssertValid member function, typically overridden from CObject. For additional information, see the Diagnostics category in the table. BEGIN_MESSAGE_MAPSets up the message map for a window class. For additional information, see the Message Map category in the table. CATCHDesignates a block of code for catching the first exception from the preceding TRY block.  �iIj�Mjc ��{�R�łW}�����$I������>>�������$I�����@#|ˀ�����For additional information, see the Exceptions category in the table. DEBUG_NEWHelps find memory leaks by providing a filename and line number for all object allocations in Debug mode. Details follow. For additional information, see the Diagnostics category in the table. DECLARE_DYNAMICPrepares a class so that you can determine its name, the name of its base class, and other information at run time. Details follow. ��Kj�jq ��E�R�łW}�����$I�����I.U�������$I�����;�"�������$I�����For additional information, see the Run-Time Information category in the table. DECLARE_MESSAGE_MAPAssociates a message map with a window class declaration. For additional information, see the Message Map category in the table. DECLARE_SERIALPrepares a class to serialize its data to and from persistent storage. For additional information, see the Serialization category in the table. �Mj�j�Ej��Mj(�j� ڀ-�R�łW}����!�R�����3������q�ր�����$I���������������$I�����Uk��������END_CATCHEnds the last CATCH or AND_CATCH block in an exception frame. For additional information, see the Exceptions category in the table. END_MESSAGE_MAPCompletes a message-map definition for a window class. For additional information, see the Message Map category in the table. IMPLEMENT_DYNAMICEnables a class so that you can determine its run-time information. Y��j��jw ����R�łW}�����$I������*0�������$I�����a����������$I�����For additional information, see the Run-Time Information category in the table. IMPLEMENT_SERIALEnables the ability of a class to serialize its data to and from persistent storage. For additional information, see the Exceptions category in the table. RUNTIME_CLASSReturns a CRuntimeClass object from which you can extract run-time information about a specified class. For additional information, see the Run-Time Information category in the table. ,�(�j��j� ҀU�R�łW}���t�������$I�����]52E�������$I�����y����������$I�����THROWThrows a specified exception. For additional information, see the Exceptions category in the table. THROW_LASTInvokes the exception handler in the next outer frame. For additional information, see the Exceptions category in the table. TRACEProvides a printf-like capability in the Debug version of the library. For additional information, see the Diagnostics category in the table. �^��jw�jl ����R�łW}����	�������$I�����9�iQ�����>�B�������$I�����TRYDesignates a block of code for exception processing. For additional information, see the Exceptions category in the table. VERIFYSimilar to ASSERT but evaluates the expression in the Release version of the library as well as in the Debug version. For additional information, see the Diagnostics category in the table. ����j1�j1���������@1�j��j��jAlphabetical Listing of Global FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Global_Functions_and_Macros')")T,w�j��j(  �X�������Alphabetical Listing of Global Functions��1�jJ�j& �?������To find additional discussion and examples for a global function, see the preceding table and use the category specified in the function description below. S���j��j� ΀��R�'��|�'��sX������R�a������$I���������������$I������Ge+��������AfxAbortThe default function called by AfxTerminate. For additional information, see the Exceptions category in the table. AfxCheckMemoryChecks all currently allocated memory for corrupted guard bytes. For additional information, see the Diagnostics category in the table. AfxDoForAllClassesPerforms a specified function on all classes derived from CObject that support run-time type checking and are used by the running program. D�J�j�jw ����R�'��|�'���$I�������~���������$I�����y���������$I�����For additional information, see the Diagnostics category in the table. AfxDoForAllObjectsPerforms a specified function on all objects derived from CObject that support run-time type checking and are used by the running program. For additional information, see the Diagnostics category in the table. AfxEnableMemoryTrackingTurns memory tracking on and off. For additional information, see the Diagnostics category in the table. V���jC�j� ΀��R�'��|�'�"�Q��������y��ۀ������~aZ��������e����������g*�k������AfxGetAppReturns a pointer to the application's one CWinApp object. AfxGetAppNameReturns a string containing the application's name. AfxGetInst�jC�jw�janceHandleReturns a HANDLE to the current instance of the application. AfxGetResourceHandleReturns a HANDLE to the current instance of the application. Use this handle to access the application's resources directly. AfxIsMemoryBlockVerifies that a memory block has been properly allocated. *��jm�jq ��s�R�'��|�'���$I�����u�Z΀������$I�����e�z���������I�������For additional information, see the Diagnostics category in the table. AfxIsValidAddressVerifies that a memory block is within the program's bounds. For additional information, see the Diagnostics category in the table. AfxRegisterWndClassRegisters a Windows window class to supplement those registered automatically by the library. AfxSetAllocHookEnables the calling of a function on each memory allocation. ��C�j��j� ���R�'��|�'���$I�����`<W��������$I��������������R�a������$I�����R�a������	����3�������For additional information, see the Diagnostics category in the table. AfxSetAllocStopEnables the calling of a function on the nth memory allocation. For additional information, see the Diagnostics catgeory in the table. AfxSetTerminateSets the final destination of calls to AfxTerminate. For additional information, see the Exceptions category in the table. AfxTerminateCalled internally if there is no applicable TRY/CATCH frame in effect. �m�j�j ̀�R�'��|�'���$I�������J�������$I�����\[,U�������$I�����+<:\������For additional information, see the Exceptions category in the table. AfxThrowArchiveExceptionThrows an archive exception. For additional information, see the Exceptions category in the table. AfxThrowFileExceptionThrows a file exception. For additional information, see the Exceptions category in the table. AfxThrowMemoryExceptionThrows a memory exception. �y��j��jq ����R�'��|�'���$I�����9��������$I�������ǀ������$I�����For additional information, see the Exceptions category in the table. AfxThrowNotSupportedExceptionThrows a not-supported exception. For additional information, see the Exceptions category in the table. AfxThrowResourceExceptionThrows a Windows resource-not-found exception. For additional information, see the Exceptions category in the table. �j�j��j1��������A��j��j��jAfxGetAppEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Global_Functions_and_Macros')")5
��j��j(  ��������AfxGetAppF��j�j, (�4�r�=���~����CWinApp* AfxGetApp( );)��j1�j& ��2������4�je�j) "��2�������Remarks��1�j]�j4 6���2�����������Returns a pointer to the one and only CWinApp object for the Windows application. This pointer is useful for getting access to the main message dispatch code or the topmost window. ReturnsP$e�j��j, (�H�2��������A pointer to a CWinApp object. �n]�jL�j1��������BL�j��js�jAfxGetAppNameEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Global_Functions_and_Macros')"):��j��j) "�"�2�������AfxGetAppNameM!L�j��j, (�B�r�=���~����const char* AfxGetAppName( );)��j��j& ��2������4��j0�j) "��2�������Remarks����j�j. *�a�2���������Returns a null-terminated string containing the Windows application's name. This string is useful for diagnostic messages or as a root for temporary string names. Returnse?0�js�j& �~�2������A null-terminated string containing the application's name. �u�j%k1���������C%kfk�kAfxGetInstanceHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Globals�j%ks�j_Functions_and_Macros')")As�jfk) "�0�2�������AfxGetInstanceHandleO#%k�k, (�F�r�=���~����HANDLE AfxGetInstanceHandle( );)fk�k& ��2������4�kk) "��2�������Remarks�T�k�k3 6���2�����������Returns a HANDLE to the current instance of the Windows application. Returnsf:k�k, (�t�2��������A HANDLE to the current instance of the application. �u�k�k1���������D�k�k�kAfxGetResourceHandleEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Global_Functions_and_Macros')")A�k�k) "�0�2�������AfxGetResourceHandleO#�k5k, (�F�r�=���~����HANDLE AfxGetResourceHandle( );)�k^k& ��2������45k�k) "��2�������Remarks��^k�k3 4���2����������Returns a HANDLE to the current instance of the Windows application. Use this handle to access the application's resources directly, for example in calls to the Windows function FindResource. �_�kk+ &���r����������Note:Override and reimplement this function if you wish to load your resources from a DLL. 3�kIk(  ��������Returnse:k�k+ &�t��������A HANDLE to the current instance of the application. �tIkSk1%��������ESk�k�
kAfxRegisterWndClassEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Global_Functions_and_Macros')")?�k�k(  �.�������AfxRegisterWndClass��SkWkE X��r�=���~������������const char* AfxRegisterWndClass( UINT nClassStyle, HCURSOR hCursor = 0, HBRUSH hbrBackground = 0, HICON hIcon = 0 );)�k�k& ��2������KWk�k2 4�2�R�w��~Q�w�����ParameterDescriptionc�k.
kH ^�7�R�w��~�w�����������������nClassStyleThe Windows class style or combination of styles for the window class. This parameter can be any valid window style or control style, or a combination of styles created by using the bitwise-OR (|) operator. hCursorA handle to the cursor resource to be installed in each window created from the window class. hbrBackgroundA handle to the brush resource to be installed in each window created from the window class. hIconA handle to the icon resource to be installed in each window created from the window class. 4�kb
k) "��2�������Remarks}I.
k�k4 6���2�����������Although the Microsoft Foundation Class Library automatically registers several standard window classes for you, you can call this function to register your own window classes. You may also use the function to change the application's icon, although a simpler way is discussed in the Class Libraries User's Guide. Returns�b
k�k3 4���2������������A null-terminated string containing the class name. You can pass this class name to the CWnd::CreateEx member function to create a window. The name is generated by the Microsoft Foundation Class Library. �p�k�
k1 2���r������������Note:The return value is stored in a static buffer. To save this string, assign it to a CString variable. �p�k'k1���������F'kbk�CkDEBUG_NEW MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `Global_Functions_and_Macros')");�
kbk(  �&�������DEBUG_NEW MacroJ'k�k. ,�8������>>����#define new DEBUG_NEW 4bk�k) "��2�������RemarksS��k?AkX ~���2��������������֡����������Use to assist in finding memory leaks. You can use DEBUG_NEW everywhere in your program that you would ordinarily use the new operator to allocate heap storage. In Debug mode (when the _DEBUG �k?Ak�
ksymbol is defined), DEBUG_NEW keeps track of the filename and line number for each object that it allocates. Then, when you use the DumpAllObjectsSince member function of class CMemoryState, each object allocated with DEBUG_NEW is shown with the filename and line number where it was allocated. �}�kCkK d���2������������������To use DEBUG_NEW, insert the define directive shown in the syntax line above into your source files. Then wherever you use new, the preprocessor will insert DEBUG_NEW, and the class library does the rest. When you compile a release version of your program, DEBUG_NEW resolves to a simple new operation, and the filename and line number information is not generated. ��?Ak�CkJ b��r����������>>�������>>�����Note:In Release mode, DEBUG_NEW is defined to be the standard operator new, so you can leave DEBUG_NEW in your code. �jCkoDk14��������GoDk�Dk�GkMessage Map Cross-ReferenceEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `class_012')")G�Ck�Dk(  �>�������Message Map Cross-Reference��oDk�Ek, &����������This reference lists all possible CWnd message map entries along with the corresponding member function prototypes. In addition, it contains documentation for the following message map macros: �U�DkKFkN l���R�E��|�E�I.U�����R��?�������������DECLARE_MESSAGE_MAP MacroBEGIN_MESSAGE_MAP MacroEND_MESSAGE_MAP Macro3��Ek~GkF Z�������X�����^��������To learn more about a particular message map entry, see the Message Map Function Categories screen. For an explanation of the terminology and conventions used in this reference, see How to Use the Cross-Reference. See Also;KFk�Gk/ .�����+������CWnd �p~GkZHk1l��������HZHk�Hk�KkMessage Map Function CategoriesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `message_map')")K#�Gk�Hk(  �F�������Message Map Function Categories��ZHk�Ik& ��������The Microsoft Foundation Class Library provides handler functions that you can override in your derived window classes. These message handlers can be divided into the following categories: �P�HkMKkr ����R���%}����{����������������kg����������^��������WM_COMMAND Message HandlerHandles WM_COMMAND messages generated by user menu selections or menu access keys. Child Window Message HandlersHandle notification messages from child windows. WM_ Message HandlersHandle WM_ messages, such as WM_PAINT. User-Defined Message HandlersHandle user-defined messages. �b�Ik�Kk1 2�������^�����For more information about this message map reference, see How to Use the Cross-Reference. �fMKkwLk1��������IwLk�Lk�MkWM_COMMAND Message HandlerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `MMCats')")F�Kk�Lk(  �<�������WM_COMMAND Message HandlerR wLkMk2 4�@�R���o}�������Map EntryFunction Prototype�?�Lk�MkA R�~�R���o}����{���������ON_COMMAND(id, memberFxn)afx_msg void memberFxn( ); �nMk.Nk1���������J.Nk|Nk,�kChild Window Notification MessagesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `MMCats')")N&�Mk|Nk(  �L�������Child Window Notification Messages�e.NkOk% ��������The handlers for child window notification messages can be divided into the following categories: J|NkPOk2 4�0�R�K��}�K�����CategoryDescription�bOk,�kn ����R�K��}�K���Q������)�_J��������������T���������F������Generic Control HandlerHandler for generic control notificatiPOk,�k�Mkon codes. User Button HandlersHandlers for user button notification codes. Combo Box HandlersHandlers for combo box notification codes. Edit Control HandlersHandlers for edit control notification codes. List Box HandlersHandlers for list box notification codes. �^POk��k1��������K��k��k߅kWM_ Messages IndexEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `MMCats')")>,�k��k(  �,�������WM_ Messages Index���k	�k& ��������Handlers for messages beginning with WM_ are indexed by the name of their message map entry. Message map entries begin with ON_WM_. Use the letters following ON_WM_ to locate handler information for a particular message map entry: K��k�k� T���R�ˀQ���������������L����������������������j#����������n%�����������'����������A - CON_WM_ACTIVATE through ON_WM_CTLCOLOR D - EON_WM_DEADCHAR through ON_WM_ERASEBKGND F - KON_WM_FONTCHANGE through ON_WM_KILLFOCUS L - MON_WM_LBUTTONDBLCLK through ON_WM_MOVE N - OON_WM_NCACTIVATE through ON_WM_NCRBUTTONUP P - RON_WM_PAINT through ON_WM_RENDERFORMAT �n	�k߅kZ ����R�ˀQ���u+�����������,����������SON_WM_SETCURSOR through ON_WM_SYSKEYUP T - ZON_WM_TIMECHANGE through ON_WM_WININICHANGE �v�k��k1~��������L��k܆k)�kHow To Use the Message Map Cross-ReferenceEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `MMCats')")V.߅k܆k(  �\�������How To Use the Message Map Cross-Reference�U��k��kV z�����������T�������)�'�������In entries where the term memberFxn is used, you must write your own member function for a derived CWnd class. You can give these functions any name you like. Other functions, such as OnActivate, are member functions of the CWnd base class that, if called, pass the message to the DefWindowProc Windows function. If you wish to process Windows notification messages, you must override the corresponding CWnd function in your derived class. Your function should call the overridden function in your base class so that the base class(es), and Windows, can operate on the message. �]܆k)�kE X�������������������In all cases you must put the function prototype in the CWnd-derived class header, and you must code the message map entry as shown. See Chapter 14 of the Class Libraries User's Guide cookbook for message map examples. The term "id" is any user-defined menu item ID (WM_COMMAND messages) or control ID (child window notification messages). The terms "message" and "wNotifyCode" are the Windows message IDs as defined in WINDOWS.H. The term "nMessageVariable" is the name of a variable that contains the return value from the RegisterWindowMessage Windows function. It must be declared NEAR. �h��kŒk1��������MŒk�k�kGeneric Control HandlerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `ChildWindow')")C)�k�k(  �6�������Generic Control HandlerR ŒkW�k2 4�@�R�ǃU|Q�������Map EntryFunction Prototype�M�k�k> L���R�ǃU|������������ON_CONTROL( wNotifyCode, id, memberFxn )afx_msg void memberFxn( ); �eW�kx�k1[��������Nx�k��k�kUser Button HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `ChildWindow')")@�k��k(  �0�������User Button HandlersR x�k
�k2 4�@�R���u|Q�������Map EntryFunction Prototype����k�k ̀�R���u|����������������������������������������ON_BN_CLICKED( id, memberFxn )afx_msg void memberFxn( ); ON_BN_DISABLE( id, memberFxn )afx_msg void memberF
�k�k�kxn( ); ON_BN_DOUBLECLICKED( id, memberFxn )afx_msg void memberFxn( ); ON_BN_HILITE( id, memberFxn )afx_msg void memberFxn( ); ON_BN_PAINT( id, memberFxn )afx_msg void memberFxn( ); ON_BN_UNHILITE( id, memberFxn )afx_msg void memberFxn( ); �c
�k��k1���������O��k��k8�kCombo Box HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `ChildWindow')")>�k��k(  �,�������Combo Box HandlersR ��k9�k2 4�@�R�ɃS|Q�������Map EntryFunction Prototype���kT�k ̀9�R�ɃS|����������������������������������������ON_CBN_CLOSEUP( id, memberFxn )afx_msg void memberFxn( ); (Windows 3.1 only) ON_CBN_DBLCLK( id, memberFxn )afx_msg void memberFxn( ); ON_CBN_DROPDOWN( id, memberFxn )afx_msg void memberFxn( ); ON_CBN_EDITCHANGE( id, memberFxn )afx_msg void memberFxn( ); ON_CBN_EDITUPDATE( id, memberFxn )afx_msg void memberFxn( ); ON_CBN_ERRSPACE( id, memberFxn )afx_msg void memberFxn( ); �s9�k8�kq ����R�ɃS|����������������������������������ON_CBN_KILLFOCUS( id, memberFxn )afx_msg void memberFxn( ); ON_CBN_SELCHANGE( id, memberFxn )afx_msg void memberFxn( ); ON_CBN_SELENDOK( id, memberFxn )afx_msg void memberFxn( ); (Windows 3.1 only) ON_CBN_SELENDCANCEL( id, memberFxn )afx_msg void memberFxn( ); (Windows 3.1 only) ON_CBN_SETFOCUS( id, memberFxn )afx_msg void memberFxn( ); �fT�k��k1F��������P��k�k%�kEdit Control HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `ChildWindow')")A8�k�k(  �2�������Edit Control HandlersR ��kb�k2 4�@�R�C��|Q�C�����Map EntryFunction PrototypeJ��k��k� �{�R�C��|�C��������������������������������������������ON_EN_CHANGE( id, memberFxn )afx_msg void memberFxn( ); ON_EN_ERRSPACE( id, memberFxn )afx_msg void memberFxn( ); ON_EN_HSCROLL( id, memberFxn )afx_msg void memberFxn( ); ON_EN_KILLFOCUS( id, memberFxn )afx_msg void memberFxn( ); ON_EN_MAXTEXT( id, memberFxn )afx_msg void memberFxn( ); ON_EN_SETFOCUS( id, memberFxn )afx_msg void memberFxn( ); ON_EN_UPDATE( id, memberFxn )afx_msg void memberFxn( ); yAb�k%�k8 @���R�C��|�C��������ON_EN_VSCROLL( id, memberFxn )afx_msg void memberFxn( ); �b��k��k1;��������Q��k��k��kList Box HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `ChildWindow')")=%�k��k(  �*�������List Box HandlersR ��kG�k2 4�@�R�o��|Q�o�����Map EntryFunction Prototype�G��k��kq ����R�o��|�o��������������������������������ON_LBN_DBLCLK( id, memberFxn )afx_msg void memberFxn( ); ON_LBN_ERRSPACE( id, memberFxn )afx_msg void memberFxn( ); ON_LBN_KILLFOCUS( id, memberFxn )afx_msg void memberFxn( ); ON_LBN_SELCHANGE( id, memberFxn )afx_msg void memberFxn( ); ON_LBN_SETFOCUS( id, memberFxn )afx_msg void memberFxn( ); �rG�k��k1~��������R��k��klWM_ Message Handlers: Functions A - CEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `WM_Msgs')")Q)��k��k(  �R�������WM_ Message Handlers: Functions A - CR ��kE�k2 4�@�R�݂?}Q�������Map EntryFunction Prototype5���k�l; D���R�݂?}��������������������ON_WM_ACTIVATE( )afx_msg void OnActivate( UINT, CWnd*, BOOL ); ON_WM_ACTIVATEAPP( )afx_msg void OnActivateApp( BOOL, HANDLE ); ON_WM_ASKCBFORMATNAME( )afx_msg void OnAskCbFormatName( UINT, LPSTR ); ON_WM_CANCELMODE( )afx_msg void OnCancelMode( ); ON_WM_CHANGECBCHAIN( )afx_msg void OnChangeCbChain( HWND, HWND ); ON_WM_CHAR( )afx_msg void OnChar( UINT, UINT, UINT ); ON_WE�k�l��kM_CHARTOITEM( )afx_msg int OnCharToItem( UINT, CWnd*, UINT ); ON_WM_CHILDACTIVATE( )afx_msg void OnChildActivate( ); |/E�klM h�_�R�݂?}������������ؤ"�����㪌�����ON_WM_CLOSE( )afx_msg void OnClose( ); ON_WM_COMPACTING( )afx_msg void OnCompacting( UINT ); ON_WM_COMPAREITEM( )afx_msg int OnCompareItem( LPCOMPAREITEMSTRUCT ); ON_WM_CREATE( )afx_msg int OnCreate( LPCREATESTRUCT ); ON_WM_CTLCOLOR( )afx_msg HBRUSH OnCtlColor( CDC*, CWnd*, UINT ); �r�l�l1���������S�l�l�lWM_ Message Handlers: Functions D - EEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `WM_Msgs')")Q)l�l(  �R�������WM_ Message Handlers: Functions D - ER �lHl2 4�@�R��1}Q�������Map EntryFunction Prototype1��lyl; D���R��1}��������������������ON_WM_DEADCHAR( )afx_msg void OnDeadChar( UINT, UINT, UINT ); ON_WM_DELETEITEM( )afx_msg void OnDeleteItem( LPDELETEITEMSTRUCT ); ON_WM_DESTROY( )afx_msg void OnDestroy( ); ON_WM_DESTROYCLIPBOARD( )afx_msg void OnDestroyClipboard( ); ON_WM_DEVMODECHANGE( )afx_msg void OnDevModeChange( LPSTR ); ON_WM_DRAWCLIPBOARD( )afx_msg void OnDrawClipboard( ); ON_WM_DRAWITEM( )afx_msg void OnDrawItem( LPDRAWITEMSTRUCT ); ON_WM_DROPFILES()afx_msg void OnDropFiles( HANDLE ); (Windows 3.1 only) #�Hl�l? L���R��1}����������㪌�����ON_WM_ENABLE( )afx_msg void OnEnable( BOOL ); ON_WM_ENDSESSION( )afx_msg void OnEndSession( BOOL ); ON_WM_ENTERIDLE( )afx_msg void OnEnterIdle( UINT, CWnd* ); ON_WM_ERASEBKGND( )afx_msg BOOL OnEraseBkgnd( CDC * ); �ryl?l1���������T?l�llWM_ Message Handlers: Functions F - KEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `WM_Msgs')")Q)�l�l(  �R�������WM_ Message Handlers: Functions F - KR ?l�l2 4�@�R��3}Q�������Map EntryFunction Prototype
��l�	lQ p�s�R��3}�����������T���������㪌�������ON_WM_FONTCHANGE( )afx_msg void OnFontChange( ); ON_WM_GETDLGCODE( )afx_msg UINT OnGetDlgCode( ); ON_WM_GETMINMAXINFO( )afx_msg void OnGetMinMaxInfo( LPPOINT ); ON_WM_HSCROLL( )afx_msg void OnHScroll( UINT, UINT, CWnd* ); ON_WM_HSCROLLCLIPBOARD( )afx_msg void OnHScrollClipboard( CWnd*, UINT, UINT ); ON_WM_ICONERASEBKGND( )afx_msg void OnIconEraseBkgnd( CDC * ); ON_WM_INITMENU( )afx_msg void OnInitMenu( CMenu * ); 1��ll3 4���R��3}������������ON_WM_INITMENUPOPUP( )afx_msg void OnInitMenuPopup( CMenu *, UINT, BOOL ); ON_WM_KEYDOWN( )afx_msg void OnKeyDown( UINT, UINT, UINT ); ON_WM_KEYUP( )afx_msg void OnKeyUp( UINT, UINT, UINT ); ON_WM_KILLFOCUS( )afx_msg void OnKillFocus( CWnd* ); �r�	l�l1X��������U�ll@@lWM_ Message Handlers: Functions L - MEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `WM_Msgs')")Q)ll(  �R�������WM_ Message Handlers: Functions L - MR �lcl2 4�@�R���y}Q�������Map EntryFunction Prototype�lrl9 @���R���y}������������������ON_WM_LBUTTONDBLCLK( )afx_msg void OnLButtonDblClk( UINT, CPoint ); ON_WM_LBUTTONDOWN( )afx_msg void OnLButtonDown( UINT, CPoint ); ON_WM_LBUTTONUP( )afx_msg void OnLButtonUp( UINT, CPoint ); ON_WM_MBUTTONDBLCLK( )afx_msg void OnMButtonDblClk( UINT, CPoint ); ON_WM_MBUTTONDOWN( )afx_msg void OnMButtonDown( UINT, CPoint ); ON_WM_MBUTTONUP( )afx_msg void OnMButtonUp( UINT, CPoint ); ON_WM_MDIACTIVATE( )afx_msg void OnMDIActivate( BOOL, CWnd*, CWnd* ); ��cl@@l7 <��R���y}����������������ON_WM_MEASUREITEM( )afx_msg void OnMeasureItem( LPMEASUREITEMSTRUCT ); ON_WM_MENUCHAR( )afx_msg LONG OnMenuChar( UINT, UINT, CMenu * ); ON_WM_MENUSELECT( )afx_msg void OnMenuSelect( UINT, UINT, HMENU ); ON_WM_MOUSEACTIVATE( )afx_msg int OnMouseActivate( CWnd*, UINT, UINT ); ON_WM_MOUSEMOVE( )afx_msg void OnMouseMove( UINT, CPoint )rl@@ll; ON_WM_MOVE( )afx_msg void OnMove( int, int ); �rrl�@l17��������V�@l4Al:FlWM_ Message Handlers: Functions N - OEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `WM_Msgs')")Q)@@l4Al(  �R�������WM_ Message Handlers: Functions N - OR �@l�Al2 4�@�R���e}Q�������Map EntryFunction Prototype8�4Al�ClG \���R���e}��������������������������ON_WM_NCACTIVATE( )afx_msg BOOL OnNcActivate( BOOL ); ON_WM_NCCALCSIZE( )afx_msg void OnNcCalcSize( LPRECT ); ON_WM_NCCREATE( )afx_msg BOOL OnNcCreate( LPCREATESTRUCT ); ON_WM_NCDESTROY( )afx_msg void OnNcDestroy( ); ON_WM_NCHITTEST( )afx_msg UINT OnNcHitTest( CPoint ); ON_WM_NCLBUTTONDBLCLK( )afx_msg void OnNcLButtonDblClk( UINT, CPoint ); ON_WM_NCLBUTTONDOWN( )afx_msg void OnNcLButtonDown( UINT, CPoint ); ON_WM_NCLBUTTONUP( )afx_msg void OnNcLButtonUp( UINT, CPoint ); ��Al�El9 @���R���e}������������������ON_WM_NCMBUTTONDBLCLK( )afx_msg void OnNcMButtonDblClk( UINT, CPoint ); ON_WM_NCMBUTTONDOWN( )afx_msg void OnNcMButtonDown( UINT, CPoint ); ON_WM_NCMBUTTONUP( )afx_msg void OnNcMButtonUp( UINT, CPoint ); ON_WM_NCMOUSEMOVE( )afx_msg void OnNcMouseMove( UINT, CPoint ); ON_WM_NCPAINT( )afx_msg void OnNcPaint( ); ON_WM_NCRBUTTONDBLCLK( )afx_msg void OnNcRButtonDblClk( UINT, CPoint ); ON_WM_NCRBUTTONDOWN( )afx_msg void OnNcRButtonDown( UINT, CPoint ); pD�Cl:Fl, (���R���e}������ON_WM_NCRBUTTONUP( )afx_msg void OnNcRButtonUp( UINT, CPoint ); �r�El�Fl1G��������W�Fl.GlDKlWM_ Message Handlers: Functions P - REnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `WM_Msgs')")Q):Fl.Gl(  �R�������WM_ Message Handlers: Functions P - RR �Fl�Gl2 4�@�R���%}Q�������Map EntryFunction Prototype�.Gl�Il; D���R���%}��������������������ON_WM_PAINT( )afx_msg void OnPaint( ); ON_WM_PAINTCLIPBOARD( )afx_msg void OnPaintClipboard( CWnd*, HANDLE ); ON_WM_PAINTICON( )afx_msg void OnPaintIcon( ); ON_WM_PALETTECHANGED( )afx_msg void OnPaletteChanged( CWnd* ); ON_WM_PARENTNOTIFY( )afx_msg void OnParentNotify( UINT, LONG ); ON_WM_QUERYDRAGICON( )afx_msg HCURSOR OnQueryDragIcon( ); ON_WM_QUERYENDSESSION( )afx_msg BOOL OnQueryEndSession( ); ON_WM_QUERYNEWPALETTE( )afx_msg BOOL OnQueryNewPalette( ); �t�GlDKl7 <���R���%}����������������ON_WM_QUERYOPEN( )afx_msg BOOL OnQueryOpen( ); ON_WM_RBUTTONDBLCLK( )afx_msg void OnRButtonDblClk( UINT, CPoint ); ON_WM_RBUTTONDOWN( )afx_msg void OnRButtonDown( UINT, CPoint ); ON_WM_RBUTTONUP( )afx_msg void OnRButtonUp( UINT, CPoint ); ON_WM_RENDERALLFORMATS( )afx_msg void OnRenderAllFormats( ); ON_WM_RENDERFORMAT( )afx_msg void OnRenderFormat( UINT ); �l�Il�Kl1���������X�Kl,Ll�lWM_ Message HandlersFunctions SEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `WM_Msgs')")K#DKl,Ll(  �F�������WM_ Message HandlersFunctions SR �Kl~Ll2 4�@�R���g}Q�������Map EntryFunction Prototype-�,Ll�Nl; D���R���g}��������������������ON_WM_SETCURSOR( )afx_msg BOOL OnSetCursor( CWnd*, UINT, UINT ); ON_WM_SETFOCUS( )afx_msg void OnSetFocus( CWnd* ); ON_WM_SHOWWINDOW( )afx_msg void OnShowWindow( BOOL, UINT ); ON_WM_SIZE( )afx_msg void OnSize( UINT, int, int ); ON_WM_SIZECLIPBOARD( )afx_msg void OnSizeClipboard( CWnd*, HANDLE ); ON_WM_SPOOLERSTATUS( )afx_msg void OnSpoolerStatus( UINT, UINT ); ON_WM_SYSCHAR( )afx_msg void OnSysChar( UINT, UINT, UINT ); ON_WM_SYSCOLORCHANGE( )afx_msg void OnSysColorChange( ); =
~Ll�l3 4��R���g}������������ON_WM_SYSCOMMAND( )afx_msg void OnSysCommand( UINT, LONG ); ON_WM_SYSDEADCHAR( )afx_msg void OnSysDeadChar( UINT, UINT, UINT ); ON_WM_SYSKEYDOWN( )afx_msg void OnSysKeyDown( UINT, UINT, UINT ); ON_WM_SYSKEYUP( )afx_msg void OnSysKeyUp( UINT, UINT, UINT ); �Nl�lDKl�r�Nl��l1"��������Y��l�l�lWM_ Message Handlers: Functions T - ZEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `WM_Msgs')")Q)�l�l(  �R�������WM_ Message Handlers: Functions T - ZR ��lR�l2 4�@�R��}Q������Map EntryFunction Prototype4��l��l9 @���R��}�����������������ON_WM_TIMECHANGE( )afx_msg void OnTimeChange( ); ON_WM_TIMER( )afx_msg void OnTimer( UINT ); ON_WM_VKEYTOITEM( )afx_msg int OnVKeyToItem( UINT, CWnd*, UINT ); ON_WM_VSCROLL( )afx_msg void OnVScroll( UINT, UINT, CWnd* ); ON_WM_VSCROLLCLIPBOARD( )afx_msg void OnVScrollClipboard( CWnd*, UINT, UINT ); ON_WM_WINDOWPOSCHANGED( )afx_msg void OnWindowPosChanged( WINDOWPOS FAR* ); (Windows 3.1 only) ON_WM_WINDOWPOSCHANGING( )afx_msg void OnWindowPosChanging( WINDOWPOS FAR* ); (Windows 3.1 only) k?R�l�l, (�~�R��}�����ON_WM_WININICHANGE( )afx_msg void OnWinIniChange( LPSTR ); �a��l��l1z��������Z��lĄl
�lUser-Defined HandlersEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `MMCats')")A�lĄl(  �2�������User-Defined HandlersR ��l�l2 4�@�R�+��zQ�+�����Map EntryFunction Prototype��Ąl
�lG \�a�R�+��z�+��������������ON_MESSAGE( message, memberFxn )afx_msg LONG memberFxn( UINT, LONG ); ON_REGISTERED_MESSAGE( nMessageVariable, memberFxn )afx_msg LONG memberFxn(  UINT, LONG  ); �j�l��l1���������[��l�lJ�lDECLARE_MESSAGE_MAP MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `message_map')")E
�l�l(  �:�������DECLARE_MESSAGE_MAP MacroF��l3�l, (�4�r�=���~����DECLARE_MESSAGE_MAP( ))�l\�l& ��2������43�l��l) "��2�������Remarks6�\�lƉlR r���2������������R��?������������Each CWnd-derived window class in your program must provide a message map. To provide a message map for a CWnd-derived window class, use the DECLARE_MESSAGE_MAP macro at the end of your window class declaration. Then, in the .CPP file that defines the member functions for the window class, use the BEGIN_MESSAGE_MAP macro, macro entries for each of your message-handler functions (see the listing above in this section), and the END_MESSAGE_MAP macro. For example: �p��lp�l: D���pȘR���������I.U������class CMyWindow : public CFrameWnd { // Member declarations  .  .  .  DECLARE_MESSAGE_MAP( )  }; 4Ɖl��l(  ��������See Also�_p�lJ�lG ^������R��?�����������X������BEGIN_MESSAGE_MAP Macro, END_MESSAGE_MAP Macro, Message Map Function Categories �h��l�l1#��������\�l&�l��lBEGIN_MESSAGE_MAP MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `message_map')")CJ�l&�l(  �6�������BEGIN_MESSAGE_MAP Macro{C�l��l8 @���r�=���~��������BEGIN_MESSAGE_MAP( Derived_window_class, Base_window_class))&�lʌl& ��2������K��l�l2 4�2�R���~Q�������ParameterDescription��ʌl�l> J�9�R���~�������������Derived_window_classThe name of the window class whose message map this is. Base_window_classThe name of the base class of Derived_window_class. 4�l#�l) "��2�������Remarks���l�lA P�#�2�������������������Use the BEGIN_MESSAGE_MAP macro to begin the definition of your message map. In the .CPP file that defines the member functions for your window class, start the message map with the BEGIN_MESSAGE_MAP macro, then add macro entries for each of your message-handler functions (see the listing above in this section), and complete the message map with the END_MESSAGE_MAP macro. For example: #�l�lJ�l�#�l��lN l���pȘR���R��?�������{������������BEGIN_MESSAGE_MAP( CMyWindow, CFrameWnd ) ON_WM_PAINT() ON_COMMAND( IDM_ABOUT, OnAbout ) END_MESSAGE_MAP( ) 4�l
�l(  ��������See Also�a��l��lG ^������I.U�����������X������DECLARE_MESSAGE_MAP Macro, END_MESSAGE_MAP Macro, Message Map Function Categories �f
�lL�l1x��������]L�l��l��lEND_MESSAGE_MAP MacroEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `message_map')")A��l��l(  �2�������END_MESSAGE_MAP MacroBL�l��l, (�,�r�=���~����END_MESSAGE_MAP( ))��l��l& ��2������4��l,�l) "��2�������Remarks����l)�lA P�y�2��������R��?��������Use the END_MESSAGE_MAP macro to mark the end of your message map definition in your .CPP file. For full instructions and an example, see the BEGIN_MESSAGE_MAP macro. See Also�c,�l��lH `���2����I.U����R��?����X������DECLARE_MESSAGE_MAP Macro, BEGIN_MESSAGE_MAP Macro, Message Map Function Categories �])�lb�l1���������^b�l��l�lOLE Class ListEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `classlist')");��l��l) "�$�2�������OLE Class List@b�l��l* $�,���R�����OLE Client Classes�N��ln�lC V���R���s~���|c-�������"��������COleClientDocOLE client document. COleClientItemOLE client item. ?��l��l) "�,�2�������OLE Server Classes�jn�lh�lQ r���R�ÁY~���|����������e�����㿉�������COleServerOLE server. COleServerDocOLE server document. COleServerItemOLE server item. @��l��l) "�.�2�������OLE Exception ClassX#h�l�l5 :�F�R����~���4��������COleExceptionOLE exception. �c��l��l1!��������_��l��l��lclass COleClientDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `oleclasses')")?�l��l(  �.�������class COleClientDoc9��l�l* $����R�����Description����l��l7 <��������������COleClientDoc is the Microsoft Foundation Class Library base class for Object Linking and Embedding (OLE) client documents. A "client document" is a compound document that contains different kinds of data in various formats. The client document acts as a container for individual OLE client items and usually corresponds to an application's document window. #include <afxole.h> See AlsoE�l�l/ .�,�����"��������COleClientItem ]-��lq�l0 0�Z�2����������Public MembersConstruction/Destruction�b�l�lI b���R���~����mր�������i5%������COleClientDocConstructs a COleClientDoc object. ~COleClientDocDestroys the object. Dq�l`�l) "�6�2�������Registration/Revocation�b�l�lC V���R��	��ƽɀ������]fÀ�����RegisterRegisters a client document. RevokeRevokes the client document registration. 3
`�l8�l) "��2�������Statust?�l��l5 :�~�R����<�[w������IsOpenChecks to see if a client document is registered. 78�l��l) "��2�������Operations2���l�lR r���R����~�����'������a�1��������ɀ�����NotifyRenameTo be called after the client document is renamed. NotifyRevertTo be called after the client document reverts to its original state. NotifySavedTo be called after the client document is saved. E��lZ�l) "�8�2�������Overridables (callbacks)i4�l��l5 :�h�R�q��~�q�\�g�������GetNextItemGets next item for this document. �oZ�lom1<��������`om�m�mCOleClientDo��lom��lc::COleClientDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientDoc')")H ��l�m(  �@�������COleClientDoc::COleClientDoc@om�m, (�(�r�=���~����COleClientDoc();)�m m& ��2������4�mTm) "��2�������Remarks� msm: B���2������d��������This constructor creates a C++ object in memory that represents an OLE client document; it does not communicate with OLECLI.DLL. You must call the Register member function prior to the creation of client items. See AlsoOTm�m0 0�>�2����ƽɀ�����COleClientDoc::Register �psmcm1���������acm�mDmCOleClientDoc::~COleClientDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientDoc')")J!�m�m) "�B�2�������COleClientDoc::~COleClientDocAcm�m, (�*�r�=���~����~COleClientDoc();)�mm& ��2������4�mKm) "��2�������Remarks�sm�m9 B���2�����Mb.��������This destructor calls the Revoke member function if the client document is currently registered. See AlsoMKmDm0 0�:�2�����]fÀ�����COleClientDoc::Revoke �m�m�m1i��������b�m)ma
mCOleClientDoc::GetNextItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientDoc')")GDm)m) "�<�2�������COleClientDoc::GetNextItem�Z�m�m8 @���r�=���~��������virtual COleClientItem* GetNextItem( POSITION& rPosition, BOOL* pIsSelected ) = 0;))m�m& ��2������K�m/m2 4�2�R�S��~Q�S�����ParameterDescription%��mTmJ b���R�S��~�S���������������rPositionA reference to an iterator position; starts as NULL and is updated as the iteration progresses. pIsSelectedA pointer to a BOOL that will be set to TRUE if the next item is successfully selected. 4/m�m) "��2�������Remarksd*Tm�	m: B�U�2�������������If your application supports links, you must implement this virtual function so that OLECLI.DLL functions can iterate over the client items contained in your document. See the description for the Microsoft Foundation class CObList for examples of how to use the POSITION variable. ReturnsuI�ma
m, (���2��������A pointer to the next client item; NULL if there are no more items. �h�	m�
m1���������c�
m<m�mCOleClientDoc::IsOpenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientDoc')")Ba
m<m) "�2�2�������COleClientDoc::IsOpenD�
m�m, (�0�r�=���~����BOOL IsOpen() const;)<m�m& ��2������4�m�m) "��2�������Remarks�Q�mam3 6���2�����������Returns TRUE if the client document was successfully registered. See AlsoO�m�m0 0�>�2����ƽɀ�����COleClientDoc::Register �namO
m1���������dO
m�
m@mCOleClientDoc::NotifyRenameEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientDoc')")H�m�
m) "�>�2�������COleClientDoc::NotifyRenamei7O
mm2 4�n�r�=���~������void NotifyRename( const char FAR* lpszNewName );)�
m)m& ��2������Kmtm2 4�2�R�q��~Q�q�����ParameterDescription�p)mm/ .���R�q��~�q�����lpszNewNameA null-terminated string that specifies the new name of the document. Must be a valid filename. 4tmGm) "��2�������Remarks��m@m' �	�2������You must call this function after the user renames the client document (with a Save As command from the File menu, for example). Gm@m�m�nGm�@m1`��������e�@m�@m"BmCOleClientDoc::NotifyRevertEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientDoc')")H@m�@m) "�>�2�������COleClientDoc::NotifyRevertD�@m7Am, (�0�r�=���~����void NotifyRevert();)�@m`Am& ��2������47Am�Am) "��2�������Remarks�h`Am"Bm& ���2������You must call this function after the user makes the client document revert to its last saved state. �m�Am�Bm1>��������f�BmCmDmCOleClientDoc::NotifySavedEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientDoc')")G"BmCm) "�<�2�������COleClientDoc::NotifySavedC�BmJCm, (�.�r�=���~����void NotifySaved();)CmsCm& ��2������4JCm�Cm) "��2�������RemarksmGsCmDm& ���2������You must call this function after the user saves a client document. �j�Cm�Dm1,��������g�Dm�Dm�ImCOleClientDoc::RegisterEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientDoc')")DDm�Dm) "�6�2�������COleClientDoc::Register�L�DmwEm8 @���r�=���~��������BOOL Register( const char FAR* lpszClass, const char FAR* lpszDoc );)�Dm�Em& ��2������KwEm�Em2 4�2�R�=��~Q�=�����ParameterDescriptionh0�EmSGm8 >�a�R�=��~�=���������lpszClassA null-terminated string that specifes the name of the client document's class, usually the client application name. lpszDocA null-terminated string that specifies the name of the client document. This must be a unique name such as the fully qualified name of the document's disk file. 4�Em�Gm) "��2�������RemarksV!SGm�Hm5 8�C�2������������After you construct the C++ object, you must call this function to register your client document. If the client application needs to copy native-format data to the Clipboard, that data contains objects, and there is no disk file involved, then lpszDoc must be "Clipboard." Returns�Y�GmeIm/ .���2���������TRUE if the document was successfully registered with OLECLI.DLL; otherwise FALSE. 5�Hm�Im) "��2�������See AlsoT$eIm�Im0 0�H�2�����mր�����COleClientDoc::COleClientDoc �h�Im�Jm1Q��������h�Jm�Jm�MmCOleClientDoc::RevokeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientDoc')")B�Im�Jm) "�2�2�������COleClientDoc::Revoke>�JmKm, (�$�r�=���~����void Revoke();)�Jm0Km& ��2������4KmdKm) "��2�������Remarks�0KmrMm_ ��_�2�����Mb.���������Mb.������������Call this function to revoke (shut down) a client document. Because Revoke is called by the COleClientDoc destructor, it is seldom called explicitly elsewhere. Revoke may be called with no ill effects for a document that has already been shut down. Prior to the document Revoke call, you must call COleClientItem::Release or COleClientItem::Delete for each client item contained within the document. See Alsow;dKm�Mm< H�v�2����Gn����6M�������COleClientItem::Release, COleClientItem::Delete �drMm~Nm1���������i~Nm�Nm��mclass COleClientItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `oleclasses')")A�Mm�Nm) "�0�2�������class COleClientItem8~Nm�Nm) "��2�������Description���Nm��m* "���2�������COleClientItem is the Microsoft Foundation Class Library base class for Object Linking and Embedding (OLE) client items. A client item is a component of a compound document (OLE client document) and usually represents dat�Nm��m�Mma in a particular format. Think of the client item as the client application's view of data provided by the server. This data could be contained in a child window, be represented directly in some region of the main window, or be invisible. ���Nm�m, &�s�r����������Note:Windows 3.1 OLE documentation refers to client items as "objects." This reference uses the term "item" to differentiate the OLE entity from the corresponding C++ class object. R#��m5�m/ .�F����������#include <afxole.h> See AlsoD�my�m/ .�*����|c-������COleClientDoc ;5�m��m) "�$�2�������Public MembersEy�m��m) "�8�2�������Construction/Destruction�e��m��mI b���R���c~���J�|�����������?������COleClientItemConstructs a COleClientItem object. ~COleClientItemDestroys the object. 5��m܃m) "��2�������Creation�y��mÅmn ����R���}���.C�������|T������On�������.
��������ƀ�����CreateFromClipboardCreates an embedded OLE item from the Clipboard. CreateStaticFromClipboardCreates an embedded picture of an OLE item from the Clipboard. CreateLinkFromClipboardCreates a linked OLE item from the Clipboard. CreateNewObjectCreates a new (empty) embedded OLE item. CreateCloneFromCreates a new OLE item from an existing OLE item. 3
܃m��m) "��2�������Status�jÅm܇m| ƀ��R����~���{��Ȁ�����}���������2�~���������������$
π�����;nu������GetLastStatusReturns the status of the last OLE operation. GetTypeReturns the type of an OLE item. GetNameReturns the name of an OLE item. GetSizeReturns the size of an OLE item. GetBoundsReturns the bounds of an OLE item's rectangle. IsOpenIndicates whether the item is currently attached to the OLE dynamic-link libraries. 8��m�m) "��2�������Data Access�[܇m�m� Ҁ��R����~����!������㝙r������㉾�[������>ʌ���������������6�l��������EnumFormatsEnumerates the Clipboard formats supported. GetDataGets data from an item in a specified format. SetDataStores data to an item in a specified format. RequestDataInitiates a data request from a server. IsEqualCompares OLE items. GetDocumentReturns the COleClientDoc object that contains this item. 9�m*�m) "� �2�������Global State�\�m��m5 :���R��;~����3�0������InWaitForReleaseIndicates whether any item is still waiting for a server to respond. >*�m��m) "�*�2�������Clipboard Helpers����m�mD V�M�R����~���&�a���������������CanPasteIndicates whether the Clipboard contains an embedded or static OLE item. CanPasteLinkIndicates whether the Clipboard contains a linked OLE item. A��m$�m) "�0�2�������Linked Object Status���m�mD V�m�R�1��}�1�x6�������\��������GetLinkUpdateOptionsReturns the update mode for a linked OLE item (advanced feature). SetLinkUpdateOptionsSets the update mode for a linked OLE item (advanced feature). ?$�m]�m) "�,�2�������General Operations�u�m@�mn ����R����~���Gn������6M���������Ͻ������J��N������0�Q�������ReleaseReleases the connection to an OLE linked item and closes it if it was open. Does not destroy the server item. DeleteDeletes an embedded or linked OLE item, including the server data. DrawDraws an OLE item. ActivateOpens an item for an operation, then executes a specified verb. WaitForServerWaits for a server to respond to a request. @]�m��m) "�.�2�������Advanced Operations�@�m��mR r�a�R�ӁI~���vj������?�,j������2�S������RenameRenames an OLE item. CopyToClipb��m��m�MmoardCopies an OLE item to the Clipboard. SetTargetDeviceSets the target device used by the server to draw an OLE item. G��m��m) "�<�2�������Embedded Object Operations ���m��mR r���R�ŁW~��㙭YI�������[C�������V�������SetHostNamesSets the names the server displays when editing an OLE item. SetBoundsSets the size of the OLE client item's window rectangle. SetColorSchemeSets the OLE item's color scheme. E��m:�m) "�8�2�������Linked Object Operations[���m��m` ����R����~���n:g�������Cz�������~d�^������������UpdateLinkUpdates a link to a server. CloseLinkCloses a link to a server but does not destroy the OLE item. ReconnectLinkReconnects a linked OLE item to a server. FreezeLinkChanges a linked OLE item into an embedded OLE item. E:�m��m) "�8�2�������Overridables (callbacks)p;��mJ�m5 :�v�R�Y��~�Y����̀�����ReportErrorA customizable error-reporting function. >��m��m) "�*�2�������Protected MembersEJ�m��m) "�8�2�������Overridables (callbacks)�v��m��mC V���R�e��~�e�BO\����������������OnChangeCalled when the server changes an OLE item. OnRenamedCalled when the server renames an OLE item. �l��m#�m1���������j#�mg�m��mCOleClientItem::ActivateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")D��mg�m(  �8�������COleClientItem::Activate��#�m;�mK d��r�=���~��������������void Activate( UINT nVerb, BOOL bShow = TRUE, BOOL bTakeFocus = TRUE, CWnd* pWndContainer = NULL, LPRECT lpBounds = NULL );)g�md�m& ��2������K;�m��m2 4�2�R�m��~Q�m�����ParameterDescription�d�m��mf ��M�R�m��~�m���������������������������nVerbServer verb index; 0 is the primary verb, 1 is the secondary verb, and so forth. bShowTRUE if the server should show the item when it performs the operation; FALSE if the server should remain active without being visible. bTakeFocusTRUE if the server should set the input focus. Relevant only if bShow is TRUE. pWndContainerA pointer to the client window object that contains the OLE item. 6���m��mB R���R�m��~�m�����������lpBoundsA pointer to a RECT structure or CRect object that contains the coordinates of the bounding rectangle in which the destination document displays the item. Units are determined by the device context mapping mode. Can be NULL. 4��m%�m) "��2�������Remarks�g��m��m` ����2������������������+#ك����&������Causes the server to execute the specified verb operation. If the primary verb is specified, COleServerItem::OnShow is called; otherwise COleServerItem::OnExtraVerb is called. Client applications often specify the primary verb when the user double-clicks an item. The server is free to take any action in response to each verb. The client may choose to set bShow to FALSE if it wants the server to remain active without being visible. If necessary, you can override the server item COleServerItem::OnDoVerb function to replace the OnShow and OnExtraVerb calls with calls to other functions. 5%�m!�m) "��2�������See Also�]��m��mH `���2����+#ك����&�����@�Tɀ�����COleServerItem::OnShow, COleServerItem::OnExtraVerb, COleServerItem::OnDoVerb �l!�mc�m1��������kc�m��m�nCOleClientItem::CanPasteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")E��m��m) "�8�2�������COleClientItem::CanPaste�ec�mQn8 @���r�=���~��������static BOOL CanPaste( OLEOPT_RE��mQn��mNDER renderopt = olerender_draw, OLECLIPFORMAT cfFormat = 0 );)��mzn& ��2������KQn�n2 4�2�R�=��~Q�=�����ParameterDescription�zznnn/ .���R�=��~�=�����renderoptA variable that specifies how the server will render the item. Must be one of the enumerators listed below: C�n�n2 4�"�R��W~Q�������ValueMeaning�hnnqnX ~���R��W~�����������������������olerender_drawThe item is drawn using COleClientItem::Draw. Thus OLECLI.DLL obtains and manages the presentation data and stores the native data for archiving purposes only. olerender_noneOLECLI.DLL does not obtain the presentation data and does not draw the object. The client calls COleClientItem::GetData to retrieve the server data in native format, and it is assumed that the client knows how to interpret this format. olerender_formatThe client calls COleClientItem::GetData to retrieve data in the format specified by cfFormat. The client then uses the retrieved data to render the item. �h�nnA R���R�=��~�=�����������cfFormatIf renderopt is olerender_format, then cfFormat specifies the Clipboard data format. 4qnNn) "��2�������Remarks�fn�n3 6���2�����������If this function returns TRUE, then you can enable the Paste command on the Edit menu. Returns�qNn�n/ .���2���������TRUE if the Clipboard currently contains an embedded or static (metafile-based) OLE item; otherwise FALSE. 5�n�n) "��2�������See Also�|�n�nH `���2����������.C�����|T������COleClientItem::CanPasteLink, COleClientItem::CreateFromClipboard, COleClientItem::CreateStaticFromClipboard �p�n!n1���������l!njn@nCOleClientItem::CanPasteLinkEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")I �njn) "�@�2�������COleClientItem::CanPasteLink�i!n	n8 @���r�=���~��������static BOOL CanPasteLink( OLEOPT_RENDER renderopt = olerender_draw, OLECLIPFORMAT cfFormat = 0 );)jn4	n& ��2������K	n	n2 4�2�R�=��~Q�=�����ParameterDescription�z4	n(
n/ .���R�=��~�=�����renderoptA variable that specifies how the server will render the item. Must be one of the enumerators listed below: C	nk
n2 4�"�R��W~Q�������ValueMeaning�h(
n+
nX ~���R��W~�����������������������olerender_drawThe item is drawn using COleClientItem::Draw. Thus OLECLI.DLL obtains and manages the presentation data and stores the native data for archiving purposes only. olerender_noneOLECLI.DLL does not obtain the presentation data and does not draw the object. The client calls COleClientItem::GetData to retrieve the server data in native format, and it is assumed that the client knows how to interpret this format. olerender_formatThe client calls COleClientItem::GetData to retrieve data in the format specified by cfFormat. The client then uses the retrieved data to render the item. �hk
n�
nA R���R�=��~�=�����������cfFormatIf renderopt is olerender_format, then cfFormat specifies the Clipboard data format. 4+
nn) "��2�������Remarks�k�
n�n3 6���2�����������If this function returns TRUE, then you can enable the Paste Link command on the Edit menu. Returns�Sn(n/ .���2���������TRUE if the Clipboard currently contains a linked OLE item; otherwise FALSE. 5�n]n) "��2�������See Also�M(n@n< H���2����&�a�����On�������COleClientItem::CanPaste, COleClientItem::CreateLinkFromClipboard ]n@n�n�m]n�@n1���������m�@n�@n�BnCOleClientItem::CloseLinkEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")F@n�@n) "�:�2�������COleClientItem::CloseLinkA�@n1An, (�*�r�=���~����void CloseLink();)�@nZAn& ��2������41An�An) "��2�������Remarks��ZAnQBn. *�+�2���������Closes the link between a linked OLE item and the server. Does not destroy the OLECLI.DLL linked item, which can be reconnected later. See AlsoU%�An�Bn0 0�J�2����~d�^������COleClientItem::ReconnectLink �rQBnICn1���������nICn�Cn)GnCOleClientItem::COleClientItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")K"�Bn�Cn) "�D�2�������COleClientItem::COleClientItemg5ICn�Cn2 4�j�r�=���~������COleClientItem( COleClientDoc* pContainerDoc );)�Cn$Dn& ��2������K�CnoDn2 4�2�R�m��~Q�m�����ParameterDescription�v$DnEn/ .���R�m��~�m�����pContainerDocA pointer to the already-registered OLE client document object that will contain this new OLE item. 4oDnHEn) "��2�������Remarks��EnFFn- (���2��������This constructor does not call any OLECLI.DLL functions. You must call one of the following COleClientItem member functions after you construct the OLE item and before you do anything else with the item: �{HEn)Gnh ����R���}���.C������|T�����On������.
�������ƀ����CreateFromClipboardCreateStaticFromClipboardCreateLinkFromClipboardCreateNewObjectCreateCloneFrom�sFFn�Gn19��������o�GnHn JnCOleClientItem::~COleClientItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")K#)GnHn(  �F�������COleClientItem::~COleClientItemB�GnZHn, (�,�r�=���~����~COleClientItem();)Hn�Hn& ��2������4ZHn�Hn) "��2�������Remarks���Hn�InF Z�Y�2�����6M�����Gn��������The OLE client item destructor deletes embedded items (with the Delete member function) and releases linked items (with the Release member function). See Alsow;�Hn Jn< H�v�2����6M�����Gn������COleClientItem::Delete, COleClientItem::Release �s�In�Jn1��������p�JnKn�LnCOleClientItem::CopyToClipboardEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")L# JnKn) "�F�2�������COleClientItem::CopyToClipboardG�JnWKn, (�6�r�=���~����void CopyToClipboard();)Kn�Kn& ��2������4WKn�Kn) "��2�������Remarks0�Kn�Ln- (��2��������Copies this OLE item to the Clipboard in a format that allows another application to paste the item as an embedded or static OLE item. The usual programming sequence is: (1) open an empty Clipboard, (2) call CopyToClipboard, and (3) close the Clipboard. �s�Kn�Mn1��������q�Mn�Mn��nCOleClientItem::CreateCloneFromEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")L#�Ln�Mn) "�F�2�������COleClientItem::CreateCloneFrom�V�MnbNn8 @���r�=���~��������BOOL CreateCloneFrom( COleClientItem* pObject, const char FAR* lpszItemName );)�Mn�Nn& ��2������KbNn�Nn2 4�2�R�}��~Q�}�����ParameterDescription���Nn�On8 >�O�R�}��~�}���������pObjectA pointer to an existing OLE item that you want to duplicate. lpszItemNameA null-terminated string that specifies the name of the new OLE client item. 4�Nn�n) "��2�������Remarks�On�n�Ln�p�On��n& ���2������Copies the specified OLE client item to this item. This function is often used to support "Undo" operations. �w�nJ�n1���������rJ�n��ng�nCOleClientItem::CreateFromClipboardEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")P'��n��n) "�N�2�������COleClientItem::CreateFromClipboard��J�nb�n? L��r�=���~����������BOOL CreateFromClipboard( const char FAR* lpszItemName, OLEOPT_RENDER renderopt = olerender_draw, OLECLIPFORMAT cfFormat = 0 );)��n��n& ��2������Kb�nւn2 4�2�R�}��~Q�}�����ParameterDescription���n�n8 >���R�}��~�}���������lpszItemNameA null-terminated string that specifies the name of the new OLE client item. renderoptA variable that specifies how the server will render the item. Must be one of the enumerators listed below: Cւn(�n2 4�"�R�)�W~Q�)�����ValueMeaning�h�n�nX ~���R�)�W~�)���������������������olerender_drawThe item is drawn using COleClientItem::Draw. Thus OLECLI.DLL obtains and manages the presentation data and stores the native data for archiving purposes only. olerender_noneOLECLI.DLL does not obtain the presentation data and does not draw the object. The client calls COleClientItem::GetData to retrieve the server data in native format, and it is assumed that the client knows how to interpret this format. olerender_formatThe client calls COleClientItem::GetData to retrieve data in the format specified by cfFormat. The client then uses the retrieved data to render the item. �h(�n��nA R���R�}��~�}�����������cfFormatIf renderopt is olerender_format, then cfFormat specifies the Clipboard data format. 4�nŇn) "��2�������Remarks�H��nM�n@ N���2��������|T��������Call this function in response to the Paste command on the Edit menu to create a new embedded OLE item from the contents of the Clipboard. First try to create an embedded item using the CreateFromClipboard member function. If that fails, use CreateStaticFromClipboard to paste a static (metafile-based) item. ReturnsZ+Ňn��n/ .�V�2���������TRUE if successful; otherwise FALSE. 5M�n܉n) "��2�������See Also�O��ng�n< H���2�����|T����&�a�������COleClientItem::CreateStaticFromClipboard, COleClientItem::CanPaste �{܉n�n1i��������s�ng�nS�nCOleClientItem::CreateLinkFromClipboardEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")T+g�ng�n) "�V�2�������COleClientItem::CreateLinkFromClipboard���n3�n? L��r�=���~����������BOOL CreateLinkFromClipboard( const char FAR* lpszItemName, OLEOPT_RENDER renderopt = olerender_draw, OLECLIPFORMAT cfFormat = 0 );)g�n\�n& ��2������K3�n��n2 4�2�R�}��~Q�}�����ParameterDescription�\�n��n8 >���R�}��~�}���������lpszItemNameA null-terminated string that specifies the name of the new OLE client item. renderoptA variable that specifies how the server will render the item. Must be one of the enumerators listed below: C��n��n2 4�"�R�)�W~Q�)�����ValueMeaning�h��n��nX ~���R�)�W~�)���������������������olerender_drawThe item is drawn using COleClientItem::Draw. Thus OLECLI.DLL obtains and manages the presentation data and stores the native data for archiving purposes only. olerender_noneOLECLI.DLL does not obtain the presentation data and does not draw the object. The client calls COleClientItem::GetData to retrieve the server data in native format, and it is assumed that the client knows how to interpret this form��n��ng�nat. olerender_formatThe client calls COleClientItem::GetData to retrieve data in the format specified by cfFormat. The client then uses the retrieved data to render the item. �h��nn�nA R���R�}��~�}�����������cfFormatIf renderopt is olerender_format, then cfFormat specifies the Clipboard data format. 4��n��n) "��2�������Remarks��n�np�n. *�A�2���������This function is called in response to the Paste Link command on the Edit menu to create a new linked OLE item from the contents of the Clipboard. ReturnsZ+��n��n/ .�V�2���������TRUE if successful; otherwise FALSE. 5p�n��n) "��2�������See AlsoT$��nS�n0 0�H�2������������COleClientItem::CanPasteLink �s��n��n1
	��������t��nC�n�nCOleClientItem::CreateNewObjectEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")L#S�nC�n) "�F�2�������COleClientItem::CreateNewObject����n*�nE X�E�r�=���~������������BOOL CreateNewObject( const char FAR* lpszClass, const char FAR* lpszItemName, OLEOPT_RENDER renderopt = olerender_draw, OLECLIPFORMAT cfFormat = 0 );)C�nS�n& ��2������K*�n��n2 4�2�R�}��~Q�}�����ParameterDescription��S�n|�nL f�%�R�}��~�}�����f��������������lpszClassA null-terminated string that specifies the class name of the new OLE client item to create. This string is usually obtained from the global function AfxOleInsertDialog. lpszItemNameA null-terminated string that specifies the name of the new OLE client item. renderoptA variable that specifies how the server will render the item. Must be one of the enumerators listed below: C��n��n2 4�"�R�)�W~Q�)�����ValueMeaning�h|�n�nX ~���R�)�W~�)���������������������olerender_drawThe item is drawn using COleClientItem::Draw. Thus OLECLI.DLL obtains and manages the presentation data and stores the native data for archiving purposes only. olerender_noneOLECLI.DLL does not obtain the presentation data and does not draw the object. The client calls COleClientItem::GetData to retrieve the server data in native format, and it is assumed that the client knows how to interpret this format. olerender_formatThe client calls COleClientItem::GetData to retrieve data in the format specified by cfFormat. The client then uses the retrieved data to render the item. �h��n(�nA R���R�}��~�}�����������cfFormatIf renderopt is olerender_format, then cfFormat specifies the Clipboard data format. 4�n\�n) "��2�������Remarks��(�nF�n. *�y�2���������Call this function in response to the Insert New Object command on the Edit menu. The function creates a new embedded OLE item that is blank and has the specified class name. ReturnsZ+\�n��n/ .�V�2���������TRUE if successful; otherwise FALSE. 5F�n��n) "��2�������See AlsoJ��n�n0 0�4�2�����f�������AfxOleInsertDialog �}��n��n1:��������u��n#�n"oCOleClientItem::CreateStaticFromClipboardEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")V-�n#�n) "�Z�2�������COleClientItem::CreateStaticFromClipboard����n�n] ��;�pȘR�����������������������BOOL CreateStaticFromClipboard( const char FAR* lpszItemName, OLEOPT_RENDER renderopt = olerender_draw, OLECLIPFORMAT cfFormat = 0 ); K#�nh�n2 4�2�R�}��~Q�}�����ParameterDescription��n�o8 >���R�}��~�}���������lpszItemNameA null-terminated string that specifies the name of the new OLE client item. reh�n�o�nnderoptA variable that specifies how the server will render the item. Must be one of the enumerators listed below: Ch�n�o2 4�"�R�)�W~Q�)�����ValueMeaning�h�o�oX ~���R�)�W~�)���������������������olerender_drawThe item is drawn using COleClientItem::Draw. Thus OLECLI.DLL obtains and manages the presentation data and stores the native data for archiving purposes only. olerender_noneOLECLI.DLL does not obtain the presentation data and does not draw the object. The client calls COleClientItem::GetData to retrieve the server data in native format, and it is assumed that the client knows how to interpret this format. olerender_formatThe client calls COleClientItem::GetData to retrieve data in the format specified by cfFormat. The client then uses the retrieved data to render the item. �h�o/oA R���R�}��~�}�����������cfFormatIf renderopt is olerender_format, then cfFormat specifies the Clipboard data format. 4�oco) "��2�������Remarks��/o8o. *�O�2���������Call this function in response to the Paste command on the Edit menu to create a new static (metafile-based) OLE item from the contents of the Clipboard. ReturnsZ+co�o/ .�V�2���������TRUE if successful; otherwise FALSE. 58o�o) "��2�������See Also[+�o"o0 0�V�2����.C������COleClientItem::CreateFromClipboard �j�o�o1���������v�oom	oCOleClientItem::DeleteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")C"oo) "�4�2�������COleClientItem::Delete>�o>o, (�$�r�=���~����void Delete();)ogo& ��2������4>o�o) "��2�������Remarks'�go�o; D���2��������������Deletes this OLE client item. If the OLE item is a linked item, this function eliminates the link to the server such that it cannot be reconnected later. The COleClientItem destructor calls Delete for embedded items. See Also�c�om	oH `���2������?����Gn����m��������COleClientItem::~COleClientItem, COleClientItem::Release, COleServerItem::OnRelease �h�o
o1���������w
oG
o�BoCOleClientItem::DrawEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")Am	oG
o) "�0�2�������COleClientItem::Draw�U
o�
oD X���r�=���~������������BOOL Draw( CDC* pDC, LPRECT lpBounds, LPRECT lpWBounds, CDC* pFormatDC );)G
o	o& ��2������K�
oTo2 4�2�R�=��~Q�=�����ParameterDescription�	om
od ��k�R�=��~�=���㪌���������������������pDCA pointer to a CDC device context object on which to draw the item. lpBoundsA pointer to a CRect object or RECT structure that defines the bounding rectangle in which to draw the object (logical units determined by the device context). lpWBoundsA pointer to a CRect object or RECT structure that defines the bounding rectangle for the metafile device context (logical units determined by the device context). �\To�
o/ .���R�=��~�=�����pFormatDCA pointer to the target device context for which this item will be formatted. 4m
o,o) "��2�������RemarksV��
o�@oe ����2����������������������������Draws a specified object into a bounding rectangle in a device context. When you use Draw with a screen display context (the usual case), both pDC and pFormatDC point to this context, and lpWBounds is ignored (use NULL as a parameter). When pDC specifies a metafile device context (an advanced use of Draw), the rectangle specified by lpWBounds con,o�@om	otains the rectangle specified by lpBounds. The device context specified by pFormatDC must not be a metafile device context. Z&,o�Ao4 6�M�2�����������The lpBounds parameter identifies the rectangle on the target device context (relative to its current mapping mode). Rendering may involve scaling the picture and can be used by client applications to impose a view scaling between the displayed view and the final printed image. ReturnsZ+�@oBBo/ .�V�2���������TRUE if successful; otherwise FALSE. 5�AowBo) "��2�������See AlsoQ!BBo�Bo0 0�B�2�����[C������COleClientItem::SetBounds �owBohCo1���������xhCo�Co}GoCOleClientItem::EnumFormatsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")H�Bo�Co) "�>�2�������COleClientItem::EnumFormatsq?hCo!Do2 4�~�r�=���~������OLECLIPFORMAT EnumFormats( OLECLIPFORMAT nFormat ) const;)�CoJDo& ��2������K!Do�Do2 4�2�R�=��~Q�=�����ParameterDescriptiont2JDo	FoB R�e�R�=��~�=�����������nFormatSpecifies the format returned by the previous call to the EnumFormats member function. For the first call to this function, this parameter is NULL. This parameter can be one of the predefined Clipboard formats or the value returned by the native Windows RegisterClipboardFormat function. 4�Do=Fo) "��2�������Remarks��	Fo�Fo. *�)�2���������Enumerates the Clipboard formats that are available for this OLE client item. Call this function in a loop to process all the formats. Returns~R=Fo}Go, (���2��������The next (or first) available format; NULL if no more formats are available. �n�FoHo1���������yHocHo�LoCOleClientItem::FreezeLinkEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")G}GocHo) "�<�2�������COleClientItem::FreezeLinkr@Ho�Ho2 4���r�=���~������virtual BOOL FreezeLink( const char FAR* lpszFrozenName );)cHo�Ho& ��2������K�HoIIo2 4�2�R����~Q�������ParameterDescription���HoJo0 .�=�R����~�������lpszFrozenNameA null-terminated string that specifies the unique name of the new (embedded) OLE item to create (cannot contain the slash (/) character). 4IIoKJo) "��2�������Remarks�VJo�Ko@ N���2�����4�����������Changes a linked OLE item into an embedded OLE item (based on the current state of the linked data). You will rarely use this function directly. The global function AfxOleLinksDialog (accessed from the Links command on the Edit menu) uses FreezeLink when the user clicks the Freeze Link button in the resulting dialog box. ReturnsZ+KJo;Lo/ .�V�2���������TRUE if successful; otherwise FALSE. 5�KopLo) "��2�������See Alsox<;Lo�Lo< H�x�2����~d�^����4�������COleClientItem::ReconnectLink, AfxOleLinksDialog �mpLo�Mo1���������z�Mo�Mo=�oCOleClientItem::GetBoundsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")F�Lo�Mo) "�:�2�������COleClientItem::GetBoundsZ(�Mo&No2 4�P�r�=���~������BOOL GetBounds( LPRECT lpBounds );)�MoONo& ��2������K&No�No2 4�2�R�=��~Q�=�����ParameterDescription�sONoHOo; F���R�=��~�=���������lpBoundsA pointer to a CRect object or RECT structure that is the destination for the bounds information. 4�No|Oo) "��2�������Remarks��HOo]�o4 6�C�2�����������Retrieves the extents of the server's bounding rectangle on the target device f|Oo]�o�Loor the specified object. The coordinates are in MM_HIMETRIC units. ReturnsZ+|Oo��o/ .�V�2���������TRUE if successful; otherwise FALSE. 5]�o�o) "��2�������See AlsoQ!��o=�o0 0�B�2�����[C������COleClientItem::SetBounds �k�oفo1���������{فo�o�oCOleClientItem::GetDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")D=�o�o) "�6�2�������COleClientItem::GetData{Cفo��o8 @���r�=���~��������HANDLE GetData( OLECLIPFORMAT nFormat, BOOL& bMustDelete );)�o��o& ��2������K��o�o2 4�2�R�=��~Q�=�����ParameterDescriptionB���oN�o\ ����R�=��~�=���������������������nFormatSpecifies the format in which data is returned. This parameter can be one of the predefined Clipboard formats or the value returned by the native Windows RegisterClipboardFormat function. bMustDeleteA reference to a BOOL value that the function sets to TRUE if you are responsible for the deletion of the retrieved data (through the Windows GlobalFree function). If the function sets bMustDelete to FALSE, then you must copy the data if you need to keep it. 4�o��o) "��2�������Remarksk>N�o�o- *�|�2���������Retrieves OLE item data in the requested format. Returns����o�o9 @���2������������A handle to an entity that contains the data. If nFormat is CF_METAFILEPICT or CF_BITMAP, then this handle is a Windows GDI object handle; otherwise it is a global memory block handle. �o�o��o1���������|��oЇoS�oCOleClientItem::GetDocumentEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")H�oЇo) "�>�2�������COleClientItem::GetDocumentS'��o#�o, (�N�r�=���~����COleClientDoc* GetDocument() const;)ЇoL�o& ��2������4#�o��o) "��2�������Remarks��L�oS�o3 4�A�2����������Returns the COleClientDoc object that contains this item. This allows access to the client document you passed as a COleClientItem constructor argument. �q��o��o1���������}��o?�o��oCOleClientItem::GetLastStatusEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")J!S�o?�o) "�B�2�������COleClientItem::GetLastStatusP$��o��o, (�H�r�=���~����OLESTATUS GetLastStatus() const;)?�o��o& ��2������4��o�o) "��2�������RemarksA��o-�o; D�
�2��������������Returns the status of the last OLE operation. For member functions that return a FALSE BOOL value, GetLastStatus returns more detailed failure information. Be aware that most OLE member functions can throw an exception for more serious errors. Returnsk?�o��o, (�~�2��������An error code from the list shown in class COleException. �x-�oA�o1e��������~A�o��o�oCOleClientItem::GetLinkUpdateOptionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")Q(��o��o) "�P�2�������COleClientItem::GetLinkUpdateOptionsU)A�o�o, (�R�r�=���~����OLEOPT_UPDATE GetLinkUpdateOptions();)��o�o& ��2������4�oD�o) "��2�������Remarks�n�o؎o& ���2������Returns the current value of the link-update option for this item. This value may be one of the following: CD�o�o2 4�"�R��5~Q�������ValueMeaning��؎o�o@ N�A�R��5~���������������oleupdate_alwaysUpdate the linked object whenever possible. This option supports the Automatic link-update radio button in the Links dialog box. oleupdate_onsav�o�o��oeUpdate the linked object when the source document is saved by the server. oleupdate_oncallUpdate the linked object only on request from the client application. This option supports the Manual link-update radio button in the Links dialog box. �k�o��o1[����������o��o�oCOleClientItem::GetNameEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")C�o��o(  �6�������COleClientItem::GetNameB��o(�o, (�,�r�=���~����CString GetName();)��oQ�o& ��2������4(�o��o) "��2�������Remarks�eQ�o�o& ���2������Returns this item's name. This is the name passed in when the object was created or last renamed. �k��o��o1������������o��o��oCOleClientItem::GetSizeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")D�o��o) "�6�2�������COleClientItem::GetSizeW%��oG�o2 4�J�r�=���~������BOOL GetSize( LPPOINT lpSize );)��op�o& ��2������KG�o��o2 4�2�R�=��~Q�=�����ParameterDescription�lp�ob�o; F���R�=��~�=���������lpSizeA pointer to a CSize object or POINT structure that is the destination for size information. 4��o��o) "��2�������Remarks�sb�o6�o- *���2���������Retrieves the size of the item. This information is used to determine the space required for drawing. Returnsh9��o��o/ .�r�2���������FALSE if the client item is blank; otherwise TRUE. �k6�o:�o1����������:�o~�o��oCOleClientItem::GetTypeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")D��o~�o) "�6�2�������COleClientItem::GetType?:�o��o, (�&�r�=���~����UINT GetType();)~�o��o& ��2������4��o�o) "��2�������RemarksuH��o��o- *���2���������Indicates whether the item is embedded, linked, or static. Returns_9�o��o& �r�2������An unsigned integer with one of the following values: C��o1�o2 4�"�R���u~Q�������ValueMeaning����o��o@ N��R���u~���������������OT_LINKThe object is a link. OT_EMBEDDEDThe object is embedded. OT_STATICThe object is a static (metafile-based) picture. �t1�o��o1J�����������o��o�oCOleClientItem::InWaitForReleaseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")L$��o��o(  �H�������COleClientItem::InWaitForReleaseO#��o8�o, (�F�r�=���~����static BOOL InWaitForRelease();)��oa�o& ��2������48�o��o) "��2�������Remarks��a�od�o: B�+�2�����H���������Use this static member function in your main window's OnCommand member function to disable user commands until all servers respond. Returns�o��o�o/ .���2���������TRUE if this client application is still waiting for a server to complete an operation; otherwise FALSE. �kd�o��o1������������o��opCOleClientItem::IsEqualEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")D�o��o) "�6�2�������COleClientItem::IsEqual`.��oB�o2 4�\�r�=���~������BOOL IsEqual( COleClientItem* pObject );)��ok�o& ��2������KB�o��o2 4�2�R�=��~Q�=�����ParameterDescription�Sk�o8�o/ .���R�=��~�=�����pObjectA pointer to an OLE item object that is to be compared with this item. 4��ol�o) "��2�������Remarks%�8�o�p. *���2���������Compares this item with a specified item. Embedded items are equal if their OLE class name, OLE item l�o�p�oname, and native data are identical. Linked items are equal if their OLE class name, OLE item name, and document name are identical. Returnsc4l�op/ .�h�2���������TRUE if the items are equal; otherwise FALSE. �j�p�p1�����������p�pPpCOleClientItem::IsOpenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")Cp�p) "�4�2�������COleClientItem::IsOpen>�pp, (�$�r�=���~����BOOL IsOpen();)�pEp& ��2������4pyp) "��2�������Remarks��Epmp3 4���2����������Returns TRUE if the item is currently connected to OLECLI.DLL. Generally, an item is considered to be connected after a successful call to one of the following COleClientItem functions: �{ypPph ����R���}���.C������|T�����On������.
�������ƀ����CreateFromClipboardCreateStaticFromClipboardCreateLinkFromClipboardCreateNewObjectCreateCloneFrom�lmp�p1�����������p1p�	pCOleClientItem::OnChangeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")DPp1p(  �8�������COleClientItem::OnChange�U�p�p@ P���pȘR�������������protected: virtual void OnChange( OLE_NOTIFICATION wNotification ) = 0; K1pp2 4�2�R�G��~Q�G�����ParameterDescription�U�p�p/ .���R�G��~�G�����wNotificationReason the server changed this item. Must be one of the following: Cp�p2 4�"�R��[~Q�������ValueMeaning��p�p@ N���R��[~���������������OLE_CHANGEDThe server item's state has changed (as from editing). OLE_SAVEDThe server document that contains this item was saved. OLE_CLOSEDThe server document that contains this item was closed. 4�pp) "��2�������Remarksq=�p�	p4 6�{�2�����������This is a pure virtual callback function that you must implement in your derived class. It is called by OLECLI.DLL when the server changes an OLE item. In general, do not redraw the client item when you get the OnChange callback, but instead post an update message or use CWnd::InvalidateRect for the window. �mp,
p1����������,
pr
p�pCOleClientItem::OnRenamedEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")F�	pr
p) "�:�2�������COleClientItem::OnRenamedb.,
p�
p4 8�\�pȘR���������protected: virtual void OnRenamed(); 4r
pp) "��2�������Remarks���
p�p- (�=�2��������This callback function is called when a client item is renamed by the server. This notification is ignored in the COleClientItem default implementation. �qpup1!���������up�p�pCOleClientItem::ReconnectLinkEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")J!�p�p) "�B�2�������COleClientItem::ReconnectLinkEup
p, (�2�r�=���~����void ReconnectLink();)�p-
p& ��2������4
pa
p) "��2�������Remarks��-
p^p@ N�{�2������Cz�����������Reactivates a connection with an open linked OLE item at the server (usually after a call to CloseLink). If the server item is not open, ReconnectLink does not open it. See AlsoQ!a
p�p0 0�B�2�����Cz�������COleClientItem::CloseLink �k^pKp1���������Kp�p�ApCOleClientItem::ReleaseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")D�p�p) "�6�2�������COleClientItem::Release?Kp�p, (�&�r�=���~����void Release();)�p@p& ��2�������p@p�p4�p@@p) "��2�������Remarks�@pCAp4 6���2�����������Releases the connection to an OLE linked item and closes the link if it was open. It does not destroy the server item. Release is called by the destructor and thus is rarely called directly. See AlsoN@@p�Ap0 0�<�2����6M�������COleClientItem::Delete �jCAp,Bp15���������,BpoBpsDpCOleClientItem::RenameEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")C�ApoBp) "�4�2�������COleClientItem::Renamec1,Bp�Bp2 4�b�r�=���~������void Rename( const char FAR* lpszNewname );)oBp�Bp& ��2������K�BpFCp2 4�2�R�e��~Q�e�����ParameterDescription�^�Bp�Cp/ .���R�e��~�e�����lpszNewnameA null-terminated string that specifies the new name for the OLE client item. 4FCpDp) "��2�������RemarkslF�CpsDp& ���2������Renames the OLE item. The name must be unique within the document. �oDpEp1����������Ep[Ep�GpCOleClientItem::ReportErrorEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")HsDp[Ep) "�>�2�������COleClientItem::ReportErrore3Ep�Ep2 4�f�r�=���~������virtual BOOL ReportError( OLESTATUS status );)[Ep�Ep& ��2������K�Ep4Fp2 4�2�R�=��~Q�=�����ParameterDescription�\�Ep�Fp; F���R�=��~�=����4�������statusThe error status code. See COleException for a complete list of error codes. 44Fp�Fp) "��2�������Remarks���Fp�Gp. *���2���������This function can be customized in the derived class to change the method of informing the user of an OLE error condition. You can call ReportError from your OLE exception-handling functions. �o�Fp�Hp1�����������Hp�Hp�MpCOleClientItem::RequestDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")H�Gp�Hp) "�>�2�������COleClientItem::RequestDatab0�Hp=Ip2 4�`�r�=���~������void RequestData( OLECLIPFORMAT nFormat );)�HpfIp& ��2������K=Ip�Ip2 4�2�R�=��~Q�=�����ParameterDescription�fIp�Jp6 :���R�=��~�=�������nFormatSpecifies the format in which data is returned. This parameter can be one of the predefined Clipboard formats or the value returned by the native Windows RegisterClipboardFormat function. 4�Ip�Jp) "��2�������Remarks��Jp�LpM h�}�2����������㝙r�����$
π����Requests the library to retrieve data in a specified format from the server. An exception is thrown if the server does not support data requests. The client application should be connected to the server when the client calls RequestData. After RequestData returns, the client can retrieve the server's data with the GetData member function, and it can get additional information through other member functions such as GetBounds. 5�Jp%Mp) "��2�������See Alsoz>�Lp�Mp< H�|�2���㝙r�����$
π�����COleClientItem::GetData, COleClientItem::GetBounds �m%Mp=Np1*���������=Np�Np��pCOleClientItem::SetBoundsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")F�Mp�Np) "�:�2�������COleClientItem::SetBoundsX&=Np�Np2 4�L�r�=���~������void SetBounds( LPRECT lpRect );)�NpOp& ��2������K�NpOOp2 4�2�R�=��~Q�=�����ParameterDescription�qOp�p; F���R�=��~�=���������lpRectA pointer to a CRect object or RECT structure that is the destination for the bounds information. OOp�p�Mp4OOp@�p) "��2�������RemarksM�p��pF Z��2����������Ͻ���������Sets the extents of the bounding rectangle on the client's target device for this embedded item. The coordinates are in MM_HIMETRIC units. The bounding rectangle does not need to have the same dimensions as the rectangle specified by the Draw member function's lpBounds parameter. These dimensions may be different because of the view scaling used by the client application's container window. The client application can call SetBounds to make the server reformat the picture to better fit the rectangle. �r@�p0�p1Z���������0�p{�p��pCOleClientItem::SetColorSchemeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")K"��p{�p) "�D�2�������COleClientItem::SetColorSchemei70�p�p2 4�n�r�=���~������void SetColorScheme( LPLOGPALETTE lpLogPalette );){�p
�p& ��2������K�pX�p2 4�2�R�M��~Q�M�����ParameterDescriptionu@
�p̈́p5 :���R�M��~�M�������lpLogPaletteA pointer to a Windows LOGPALETTE structure. 4X�p�p) "��2�������Remarks�̈́p�p9 @���2������������A client application uses the SetColorScheme member function to change the color scheme. The client does not need to call SetColorScheme every time a server is opened. The first palette entry in the LOGPALETTE structure specifies the foreground color recommended by the client application. The second palette entry specifies the background color. The first half of the remaining palette entries are fill colors, and the second half are colors for lines and text. �k�p��p' ���2������Client applications should specify an even number of palette entries. When there is an uneven number of entries, the server interprets the odd entry as a fill color; that is, if there were five entries, three would be interpreted as fill colors and two as line and text colors. When server applications render metafiles, they should use the suggested palette. �k�p@�p1����������@�p��p�pCOleClientItem::SetDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")D��p��p) "�6�2�������COleClientItem::SetDatat<@�p��p8 @�x�r�=���~��������void SetData( OLECLIPFORMAT nFormat, HANDLE hData );)��p!�p& ��2������K��pl�p2 4�2�R�=��~Q�=�����ParameterDescription�f!�p�pD V���R�=��~�=�������������nFormatSpecifies the format in which data is returned. This parameter can be one of the predefined Clipboard formats or the value returned by the native Windows RegisterClipboardFormat function. hDataIdentifies a global memory block, allocated with the Windows GlobalAlloc function, that contains the data in the format specified by the server. 4l�pJ�p) "��2�������Remarks���p�p( �!�2�������Sends data in the specified format to the server associated with a specified item. An exception is thrown if the server cannot accept data. �pJ�p��p1������������p�pJ�pCOleClientItem::SetHostNamesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")I �p�p) "�@�2�������COleClientItem::SetHostNames�S��pw�p8 @���r�=���~��������void SetHostNames( const char FAR* lpszHost, const char FAR* lpszHostObj );)�p��p& ��2������Kw�p�p2 4�2�R�=��~Q�=�����ParameterDescription����pӏp8 >�a�R�=��~�=���������lpszHostA null-terminated string that specifies the name of the client application. lpszHostObjA null-terminated string that specifies the client's name for the item. 4�p�p) "��2�������Remӏp�p�parks7	ӏpJ�p. *��2���������Specifies the name of the client application and the client's name for the specified object. This information is often used in window titles when the server application edits the item. It is not necessary to call SetHostNames each time a server is activated. �x�p��p1{�����������pD�p��pCOleClientItem::SetLinkUpdateOptionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")Q(J�pD�p) "�P�2�������COleClientItem::SetLinkUpdateOptionsm;��p��p2 4�v�r�=���~������void SetLinkUpdateOptions( OLEOPT_UPDATE updateOpt );)D�p��p& ��2������K��p%�p2 4�2�R�=��~Q�=�����ParameterDescription�j��p��p/ .���R�=��~�=�����updateOptThe value of the link-update option for this item. This value must be one of the following: C%�p�p2 4�"�R��5~Q������ValueMeaning����p��p@ N�A�R��5~��������������oleupdate_alwaysUpdate the linked object whenever possible. This option supports the Automatic link-update radio button in the Links dialog box. oleupdate_onsaveUpdate the linked object when the source document is saved by the server. oleupdate_oncallUpdate the linked object only on request from the client application. This option supports the Manual link-update radio button in the Links dialog box. 4�p�p) "��2�������RemarksyS��p��p& ���2������Sets the link-update options for the presentation of the specified linked item. �s�p2�p1D���������2�p~�p��pCOleClientItem::SetTargetDeviceEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")L#��p~�p) "�F�2�������COleClientItem::SetTargetDevice]+2�p��p2 4�V�r�=���~������void SetTargetDevice( HANDLE hData );)~�p�p& ��2������K��pO�p2 4�2�R�=��~Q�=�����ParameterDescription�v�p��p5 :���R�=��~�=�������hDataIdentifies a native OLE StdTargetDevice memory structure that describes the target device for the object. 4O�p.�p) "��2�������Remarksc��p��pG \�9�2�������n:g������Ͻ�������Specifies an item's target output device. Allows a linked or embedded item to be formatted correctly for a target device, even when the item is rendered on a different device. A client application should call this function whenever the target device changes so that servers can be notified to change the rendering of the item if necessary. The client application should call the UpdateLink member function to ensure that the information is sent to the server. Do this so that the server can make the necessary changes to the item's presentation. The client application should call the Draw member function to redraw the item if it receives a notification from the server that the item has changed. The client does not need to call SetTargetDevice every time a server is activated. �n.�p0�p1����������0�pw�p!�pCOleClientItem::UpdateLinkEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")G��pw�p) "�<�2�������COleClientItem::UpdateLinkB0�p��p, (�,�r�=���~����void UpdateLink();)w�p��p& ��2������4��p�p) "��2�������Remarks����p��p: B��2�����4���������For linked items, updates a link to a server now. This function is called from the global function AfxOleLinksDialog. See AlsoI�p!�p0 0�2�2����4�������AfxOleLinksDialog �q��p��p1������������pq�qCOleClientItem::WaitForServerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleClientItem')")J!!�pq) "�B�2�������COleClientItem::Wai��pq!�ptForServerf2��pq4 8�d�pȘR���������protected: virtual void WaitForServer(); 4q�q) "��2�������Remarks
�q�q( ���2�������The client uses this implementation routine to wait for a server to respond to a request. The default implementation is generally sufficient. Override it if you need an alternative to the standard asynchronous processing. �`�qNq1�	���������Nq�q+qclass COleServerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `oleclasses')")=�q�q) "�(�2�������class COleServer9Nq�q* $����R�����Description
��q�q0 .������������COleServer is the Microsoft Foundation Class Library base class for Object Linking and Embedding (OLE) servers. A server receives requests from OLESVR.DLL, and it responds by creating or opening documents, closing documents, exiting, and so forth. Most server applications support one server object, but some applications support multiple servers. Microsoft Excel, for example, has two server objects, one for worksheets and the other for charts. #include <afxole.h> 4�qq(  ��������See Alsod)�qfq; F�R������e���㿉�������COleServerDoc, COleServerItem Q!q�q0 0�B�2����������Public MembersData Members�mfq_q; F���R�7��}�7�3f���������m_bLaunchEmbeddedA flag that is set to TRUE if the program has been launched as an embedded server. E�q�q) "�8�2�������Construction/Destruction�Y_qFqI b���R�e��~�e㔊����������p���������COleServerConstructs a COleServer object. ~COleServerDestroys the object. D�q�q) "�6�2�������Registration/Revocation��FqVqD V��R�w��~�w��A�Ԁ�������H������RegisterRegisters the server (called after the constructor). BeginRevokeBegins server shutdown (called by the destructor). 3
�q�q) "��2�������Status�SVq	q5 :���R���㠣�8������IsOpenIndicates whether the server is currently operational and registered. >�qO	q) "�*�2�������Protected MembersE	q�	q) "�8�2�������Overridables (callbacks)"�O	q�q| ƀM�R���s}�����0��������X������`z8�������F1�������m�ƀ�����I�l������OnCreateDocCalled to create a new OLE server embedded document. OnEditDocCalled to open an existing OLE server embedded document for editing. OnOpenDocCalled to open an existing OLE server-linked document. OnCreateDocFromTemplateCalled to create a new OLE server document from a template. OnExecuteUsed for DDE Execute messages. OnExitCalled to inform you that the server should exit. u@�	q+q5 :���R���s}��㔳�C������OnReleaseCalled to clean up when the server is released. �g�q�q1z����������q
qOqCOleServer::BeginRevokeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")C+q
q(  �6�������COleServer::BeginRevokeC�qI
q, (�.�r�=���~����void BeginRevoke();)
qr
q& ��2������4I
q�
q) "��2�������Remarks�}r
qOq, (���2��������Begins the OLE server shutdown procedure. It is called by the COleServer destructor and thus is rarely called directly. �f�
q�q1�����������q)q8BqCOleServer::COleServerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")COq)q) "�4�2�������COleServer::COleServer[)�q�q2 4�R�r�=���~������COleServer( BOOL bLaunchEmbedded );))q�q& ��2������K�q@q2 4�2�R�́O~Q�������ParameterDescription�q@qOq�n�q�@q5 :���R�́O~���������bLaunchEmbeddedTRUE if the server application was launched with the "/Embedded" command-line argument. 4@q�@q) "��2�������Remarks	��@q�Aq: B���2������d��������This constructor makes an OLE server C++ object in memory; it does not communicate with OLESVR.DLL. You must call the Register member function before the server can accept client requests. See AlsoL�@q8Bq0 0�8�2�����A�Ԁ�����COleServer::Register �g�Aq�Bq1T����������BqCq7DqCOleServer::~COleServerEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")D8BqCq) "�6�2�������COleServer::~COleServer>�BqRCq, (�$�r�=���~����~COleServer();)Cq{Cq& ��2������4RCq�Cq) "��2�������Remarks�V{Cq7Dq2 4���2�������H�����The destructor calls the BeginRevoke member function to start server shutdown. �b�Cq�Dq1�����������Dq	Eq�FqCOleServer::IsOpenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")?7Dq	Eq) "�,�2�������COleServer::IsOpenD�DqMEq, (�0�r�=���~����BOOL IsOpen() const;)	EqvEq& ��2������4MEq�Eq) "��2�������Remarks�`vEqCFq9 B���2�������������Returns TRUE if the server has been successfully registered; otherwise FALSE. See AlsoL�Eq�Fq0 0�8�2�����A�Ԁ�����COleServer::Register �gCFq'Gq1����������'GqkGq"KqCOleServer::OnCreateDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")D�FqkGq) "�6�2�������COleServer::OnCreateDoc�|'Gq7HqP p���pȘR�������������������protected: virtual COleServerDoc* OnCreateDoc( const char FAR* lpszClass, const char FAR* lpszDoc ) = 0; KkGq�Hq2 4�2�R�=��~Q�=�����ParameterDescription��7Hq�Iq8 >���R�=��~�=���������lpszClassA null-terminated string that specifies the class name of an OLE server document type. lpszDocA null-terminated string that specifies the name of the new document (not a filename). 4�Hq�Iq) "��2�������Remarks���Iq�Jq. *�{�2���������You must implement this callback function to (1) create an OLE server embedded document of the correct class or (2) return a pointer to an existing OLE server document object. Returns�V�Iq"Kq, (���2��������If successful, a pointer to a newly created OLE server document; otherwise NULL. �s�Jq�Kq14����������KqLq��qCOleServer::OnCreateDocFromTemplateEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")P'"KqLq) "�N�2�������COleServer::OnCreateDocFromTemplate��KqMq^ ��O�pȘR������������������������protected: virtual COleServerDoc* OnCreateDocFromTemplate( const char FAR* lpszClass, const char FAR* lpszDoc, const char FAR* lpszTemplate ); KLqfMq2 4�2�R�Y��~Q�Y�����ParameterDescription�_MqOq@ N���R�Y��~�Y�������������lpszClassA null-terminated string that specifies the class name of an OLE server document type. lpszDocA null-terminated string that specifies the name of the new document (not a filename). lpszTemplateA null-terminated string that specifies the fully qualified name of a file that contains a template for creating a new server document. 4fMq9Oq) "��2�������Remarks�XOqҀq5 8���2������������This callback function requires the server to open and read the contents of a file to use as the initial contents of a new server document. You m9OqҀq"Kqust determine your own template file format. The OnCreateDocFromTemplate member function may be used with both linked and embedded documents. The default implementation does nothing. Returns��9Oq��q3 4�%�2����������If successful, a pointer to a newly created OLE server document; otherwise NULL. Returns NULL if the server does not support this feature. �eҀq-�q1����������-�qo�q �qCOleServer::OnEditDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")B��qo�q) "�2�2�������COleServer::OnEditDoc�z-�q9�qP p���pȘR�������������������protected: virtual COleServerDoc* OnEditDoc( const char FAR* lpszClass, const char FAR* lpszDoc ) = 0; Ko�q��q2 4�2�R�=��~Q�=�����ParameterDescription�9�q��q8 >���R�=��~�=���������lpszClassA null-terminated string that specifies the class name of an OLE server document type (rarely used). lpszDocA null-terminated string that usually specifies the name of an existing document. 4��q��q) "��2�������Remarksi.��q)�q; D�]�2������`z8��������You must implement this callback function to open an existing OLE server embedded document for editing. It is called in response to the client's edit request. Note that this function is specialized for embedded documents; the OnOpenDoc member function is called for linked documents. ReturnsuI��q��q, (���2��������If successful, a pointer to an OLE server document; otherwise NULL. 5)�qӆq) "��2�������See AlsoM��q �q0 0�:�2����`z8������COleServer::OnOpenDoc �eӆq��q1������������q��q\�qCOleServer::OnExecuteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")B �q��q) "�2�2�������COleServer::OnExecute�J��q��q@ P���pȘR�������������protected: virtual OLESTATUS OnExecute( LPVOID lpCommands ); K��q͈q2 4�2�R�S��~Q�S�����ParameterDescription�]��qY�q/ .���R�S��~�S�����lpCommandsA far pointer to a block of memory that contains DDE Execute string commands. 4͈q��q) "��2�������Remarks�Y�q��q5 8���2������������Override this funtion to handle DDE Execute messages. The server must not delete memory referenced by lpCommands. This is an advanced feature for developers familiar with Dynamic Data Exchange programming. Returns����q\�q9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. �b��q�q1�����������q.�q��qCOleServer::OnExitEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")?\�q.�q) "�,�2�������COleServer::OnExitd0�q��q4 8�`�pȘR���������protected: virtual OLESTATUS OnExit(); 4.�qƌq) "��2�������Remarks
���qЍq@ N���2���������H��������This callback function informs you that the server should exit now. The OnExit member function is seldom overridden. The default implementation calls the BeginRevoke member function. Returns��ƌq��q9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. �eЍq"�q1J���������"�qd�q��qCOleServer::OnOpenDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")B��qd�q) "�2�2�������COleServer::OnOpenDoc�U"�q�q@ P���pȘR�������������protected: virtual COleServerDoc* OnOpenDoc( const char FAR* lpszDoc ); d�q�q��qKd�qW�q2 4�2�R�=��~Q�=�����ParameterDescription�^�q��q/ .���R�=��~�=�����lpszDocA null-terminated string that usually specifies the name of an existing document. 4W�q�q) "��2�������Remarksu:��q��q; D�u�2�������X��������You must implement this callback function to open an existing OLE server-linked document for editing. It is called by OLESVR.DLL in response to the client's edit request. Note that this function is specialized for linked documents; the OnEditDoc member function is called for embedded documents. ReturnsuI�q�q, (���2��������If successful, a pointer to an OLE server document; otherwise NULL. 5��q7�q) "��2�������See AlsoM�q��q0 0�:�2�����X������COleServer::OnEditDoc �e7�q�q1�����������q\�q��qCOleServer::OnReleaseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")B��q\�q) "�2�2�������COleServer::OnReleaseg3�q��q4 8�f�pȘR���������protected: virtual OLESTATUS OnRelease(); 4\�q��q) "��2�������Remarks:���q1�qG \���2�����L�������L����������This callback function is called when OLESVR.DLL releases this server. The OnRelease member function is called when it is safe for the server to delete all structures and quit. You will seldom need to override OnRelease. Returns����q��q9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. �d1�q��q1������������q��qB�qCOleServer::RegisterEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")A��q��q) "�0�2�������COleServer::Register�H��qC�q8 @���r�=���~��������BOOL Register( const char FAR* lpszClass, BOOL bMultiInstance );)��ql�q& ��2������KC�q��q2 4�2�R�k��~Q�k�����ParameterDescriptionDl�q��qD V��R�k��~�k�������������lpszClassA null-terminated string that specifies the class name of an OLE server document type. bMultiInstanceTRUE if your server application can run multiple instances (SDI); FALSE if one server application can handle multiple clients (MDI). 4��q/�q) "��2�������Remarks���qB�q3 4���2������d�����Registers the specified server, class name, and instance with OLESVR.DLL. You must call the Register member function to inform the OLE dynamic-link libraries that your server is ready to accept requests from clients. �m/�q��q1
�����������q*�q�qCOleServer::m_bLaunchEmbeddedEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServer')")J!B�q*�q) "�B�2�������COleServer::m_bLaunchEmbeddedD��qn�q(  �8�������BOOL m_bLaunchEmbedded; 4*�q��q) "��2�������Remarks�n�q��q: B���2�������������A flag that is set to TRUE if the program has been launched as an embedded server, FALSE if it is a linked server. Because the constructor can set this flag, you will seldom need to set it directly. See AlsoN��q�q0 0�<�2���㔊��������COleServer::COleServer �c��q��q1@�����������q��q�rclass COleServerDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `oleclasses')")@�q��q) "�.�2�������class COleServerDoc9��q�q* $����R�����Description�a��q�r)  ���������COleServerDoc is the Microsoft Foundation Class Library base class for Object Linking and Embedding (OLE) server documents. In a single document interface (SDI) Windows application, a server docume�q�r�qnt normally contains a single embedded or linked item. Multiple instances of the application can support multiple clients or multiple items per client. ���q�r+ $�s�R���������Note:Windows 3.1 OLE documentation refers to client items as "objects." This reference uses the term "item" to differentiate the OLE entity from the corresponding C++ class object. R#�r�r/ .�F����������#include <afxole.h> See Alsoa&�r=r; F�L����|�����㿉�������COleServer, COleServerItem ;�rxr) "�$�2�������Public Members9=r�r) "� �2�������Data Memberss>xr$r5 :�|�R�M��~�M��ـ�����m_hPaletteThe client document color-scheme identifier. E�rir) "�8�2�������Construction/Destruction�b$rrI b���R���e~���E����������r7������COleServerDocConstructs a COleServerDoc object. ~COleServerDocDestroys the object. DirXr) "�6�2�������Registration/Revocation��rGrD V�W�R��	��K��'������>W�������RegisterRegisters the document and informs OLESVR.DLL that it is ready for communication. RevokeRevokes the server document registration and waits to finish. 3
Xrzr) "��2�������Statusu@Gr�r5 :���R���㔫�р�����IsOpenIndicates whether a server document is registered. 7zr&r) "��2�������OperationsI��ror| ƀ��R���m~���u�������yG���������]�������ö������5�������o4�������NotifyRenameTo be called after the server document is renamed. NotifyRevertTo be called after the server document reverts to its original state. NotifySavedTo be called after the server document is saved. NotifyAllClientsTo be used as a general notification to all clients. NotifyClosedTo be called to inform all clients that a document has been closed. NotifyChangedTo be called to inform all clients of a document change. >&r�r) "�*�2�������Protected MembersEor�r) "�8�2�������Overridables (callbacks)A��r3rn ����R�%��}�%�"��+�������s�������~R������9x��������vI�������OnGetDocumentReturns a newly allocated OLE server item object that represents the entire document (implementation required). OnGetItemGiven an item name, returns a newly allocated OLE server item object (implementation required). GetNextItemReturns the next item in the iteration (implementation required). OnCloseCalled on a client's request to close the document. OnExecuteCalled on a client's request to execute DDE Execute strings. d�r�rR r�%�R�%��}�%�"�ۀ�����=�p������1�Q������OnSetDocDimensionsCalled on a client's request to change the document dimensions. OnSetHostNamesCalled on a client's request to change the host name of the document. OnSetColorSchemeCalled on a client's request to change the color scheme of the document. �o3r7
r1���������7
r
rmrCOleServerDoc::COleServerDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")H �r
r(  �@�������COleServerDoc::COleServerDoc@7
r�
r, (�(�r�=���~����COleServerDoc();)
r�
r& ��2������4�
rr) "��2�������Remarks��
rr: B���2������d��������This constructor makes an OLE server document C++ object in memory; it does not communicate with OLESVR.DLL. You must call the Register member function before creating server items. See AlsoOrmr0 0�>�2����K��'������COleServerDoc::Register �pr@r1����������@rd@r�ArCOleServerDoc::~COleServerDocEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COlmr@rmreServerDoc')")J!mrd@r) "�B�2�������COleServerDoc::~COleServerDocA@r�@r, (�*�r�=���~����~COleServerDoc();)d@r�@r& ��2������4�@rAr) "��2�������Remarks}D�@rAr9 B���2�����Mb.��������This destructor calls the Revoke member function. See AlsoMAr�Ar0 0�:�2����>W�������COleServerDoc::Revoke �mArjBr11���������jBr�Br�ErCOleServerDoc::GetNextItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")G�Ar�Br) "�<�2�������COleServerDoc::GetNextItem�XjBrICr@ P���pȘR�������������protected: virtual COleServerItem* GetNextItem( POSITION& rPosition ) = 0; K�Br�Cr2 4�2�R�=��~Q�=�����ParameterDescription�pICr9Dr5 :���R�=��~�=�������rPositionA reference to an iterator position; starts as NULL and is updated as the iteration progresses. 4�CrmDr) "��2�������Remarks��9Dr!Er. *�
�2���������You must implement this virtual callback function to iterate over the items in your document, even if there is only one. Returns�dmDr�Er, (���2��������A pointer to the next server item; NULL if the iteration is complete or if there are no items. �h!ErJFr1*���������JFr�Fr�HrCOleServerDoc::IsOpenEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")B�Er�Fr) "�2�2�������COleServerDoc::IsOpenDJFr�Fr, (�0�r�=���~����BOOL IsOpen() const;)�Fr�Fr& ��2������4�Fr-Gr) "��2�������Remarksm@�Fr�Gr- *���2���������Indicates whether a server document is registered. Returnsg8-GrHr/ .�p�2���������TRUE if successfully registered; otherwise FALSE. 5�Gr6Hr) "��2�������See AlsoOHr�Hr0 0�>�2����K��'������COleServerDoc::Register �r6Hr(Ir1����������(IrtIr(MrCOleServerDoc::NotifyAllClientsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")L#�HrtIr) "�F�2�������COleServerDoc::NotifyAllClientsp>(Ir�Ir2 4�|�r�=���~������void NotifyAllClients( OLE_NOTIFICATION wNotification );)tIr
Jr& ��2������K�IrXJr2 4�2�R�G��~Q�G�����ParameterDescriptionyJ
Jr�Jr/ .���R�G��~�G�����wNotificationAn OLE notification code. Must be one of the following: CXJrKr2 4�"�R��Y~Q�������ValueMeaning���Jr�KrH ^�?�R��Y~�������������������OLE_CHANGEDDocument has been changed OLE_SAVEDDocument has been saved OLE_CLOSEDDocument has been closed OLE_RENAMEDDocument has been renamed 4Kr/Lr) "��2�������RemarksxK�Kr�Lr- *���2���������General notification to all clients. Rarely called directly. See Also�E/Lr(Mr< H���2����5�����o4�������COleServerDoc::NotifyClosed, COleServerDoc::NotifyChanged �o�Lr�Mr1�����������MrNrOrCOleServerDoc::NotifyChangedEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")I (MrNr) "�@�2�������COleServerDoc::NotifyChangedE�MrVNr, (�2�r�=���~����void NotifyChanged();)NrNr& ��2������4VNr�Nr) "��2�������Remarks��NrOr' �K�2������Notifies all clients that a server document has changed. Call this function after you change some global attribute such as the dimensions of the server document. �n�Nr*�r1p���������*�rr�r��rCOleServerDoc::NotifyClosedEnableButton("up");ChangeButtonBinding("up", "JI(`mfOr*�rOrc10wh.hlp', `COleServerDoc')")HOrr�r) "�>�2�������COleServerDoc::NotifyClosedD*�r��r, (�0�r�=���~����void NotifyClosed();)r�r߀r& ��2������4��r�r) "��2�������Remarks�x߀r��r& ���2������Notifies all clients that a server document has been closed. Call this function after you close the server document. �n�rP�r1����������P�r��r�rCOleServerDoc::NotifyRenameEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")H��r��r) "�>�2�������COleServerDoc::NotifyRenamei7P�r�r2 4�n�r�=���~������void NotifyRename( const char FAR* lpszNewName );)��r*�r& ��2������K�ru�r2 4�2�R�q��~Q�q�����ParameterDescription�m*�r�r/ .���R�q��~�q�����lpszNewNameA null-terminated string that specifies the fully qualified name of the new server document. 4u�rE�r) "��2�������Remarks���r�r' �+�2������Notifies all clients that a server document has been renamed. Call this function after you rename the server document to update all active links. �nE�r��r1������������r�rS�rCOleServerDoc::NotifyRevertEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")H�r�r) "�>�2�������COleServerDoc::NotifyRevertD��r,�r, (�0�r�=���~����void NotifyRevert();)�rU�r& ��2������4,�r��r) "��2�������Remarks��U�rS�r' �G�2������Notifies all clients that a server document has reverted to its original state. Call this function after a server document has reverted to its last saved form. �m��r�r1s����������r8�rz�rCOleServerDoc::NotifySavedEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")GS�r8�r) "�<�2�������COleServerDoc::NotifySavedC�r{�r, (�.�r�=���~����void NotifySaved();)8�r��r& ��2������4{�r؈r) "��2�������Remarks�|��rz�r& ���2������Notifies all clients that a server document has been saved. Call this function after the user saves the server document. �i؈r�r1����������rW�r:�rCOleServerDoc::OnCloseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")Cz�rW�r) "�4�2�������COleServerDoc::OnClosee1�r��r4 8�b�pȘR���������protected: virtual OLESTATUS OnClose(); 4W�r��r) "��2�������Remarks�a��r~�r- *���2���������This callback function is called when a client tries to close this server document. Returns����r:�r9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. �k~�r֌r1H���������֌r�r�rCOleServerDoc::OnExecuteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")E:�r�r) "�8�2�������COleServerDoc::OnExecute�J֌r��r@ P���pȘR�������������protected: virtual OLESTATUS OnExecute( LPVOID lpCommands ); K�r��r2 4�2�R�S��~Q�S�����ParameterDescription�]��r|�r/ .���R�S��~�S�����lpCommandsA far pointer to a block of memory that contains DDE Execute string commands. 4��r��r) "��2�������Remarks�h|�r_�r; D���2��������������Override this function to handle DDE Execute commands that are sent to this document. The COleServer::OnExecute function handles DDE Execute string commands not sent to a specific document. The server must not delete memory referenced by lpCommands. This is an advanced f��r_�r:�reature for developers familiar with Dynamic Data Exchange programming. Returns����r�r9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. �o_�r��r1
�����������r�r��rCOleServerDoc::OnGetDocumentEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")I �r�r) "�@�2�������COleServerDoc::OnGetDocumentuA��ry�r4 8���pȘR���������protected: virtual COleServerItem* OnGetDocument() = 0; 4�r��r) "��2�������Remarks0	y�r��r' ��2������You must implement this virtual callback function to return an OLE server item object (linked or embedded) that represents the entire document. If you are implementing a multiple-instance SDI server, then this function will only be called once for the document. �k��ry�r1����������y�r��r��rCOleServerDoc::OnGetItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")E��r��r) "�8�2�������COleServerDoc::OnGetItem�by�rg�rG ^���pȘR����������������protected: virtual COleServerItem* OnGetItem( const char FAR* lpszItemName ) = 0; K��r��r2 4�2�R�}��~Q�}�����ParameterDescriptionqBg�r#�r/ .���R�}��~�}�����lpszItemNameThe name for an existing OLE server-linked item. 4��rW�r) "��2�������Remarks3#�r��r3 4��2����������You must implement this function to return an OLE server item that represents a named item in this document. The OnGetItem member function is used primarily for documents that support links. If the item is embedded, the function should return NULL. �rW�r-�r1���������-�ry�rW�rCOleServerDoc::OnSetColorSchemeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")L#��ry�r) "�F�2�������COleServerDoc::OnSetColorScheme�\-�r�rG ^���pȘR����������������protected: virtual OLESTATUS OnSetColorScheme( LPLOGPALETTE lpLogPalette ); Ky�rg�r2 4�2�R�M��~Q�M�����ParameterDescriptionu@�r��r5 :���R�M��~�M�������lpLogPaletteA pointer to a Windows LOGPALETTE structure. 4g�r�r) "��2�������Remarks���r�r4 6���2�����������This virtual callback function is called when a client sets the color scheme for this server document. The default implementation saves the color information in the m_hPalette data member. Returns���r��r9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. 5�r�r) "��2�������See AlsoV&��rW�r0 0�L�2�����V�������COleClientItem::SetColorScheme �t�r��r1Q�����������rJ�rvsCOleServerDoc::OnSetDocDimensionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")N%W�rJ�r) "�J�2�������COleServerDoc::OnSetDocDimensions�Q��r��rF \���pȘR�����������������protected: virtual OLESTATUS OnSetDocDimensions( LPRECT lpRect ); KJ�r,�r2 4�2�R�=��~Q�=�����ParameterDescription�f��r��r; F���R�=��~�=���������lpRectA pointer to a CRect object or RECT structure that contains the new window dimensions. 4,�r�r) "��2�������Remarks'���r4s/ ,���2����������This virtual callback function is called when a client changes the size of the server's document window. Override this function if your embedded server can resize or move its document windows. The default i�r4sW�rmplementation does nothing. Returns���r�s9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. 54s%s) "��2�������See AlsoQ!�svs0 0�B�2�����[C������COleClientItem::SetBounds �p%ss1|���������sas�sCOleServerDoc::OnSetHostNamesEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")J!vsas) "�B�2�������COleServerDoc::OnSetHostNames�ys*sP p���pȘR�������������������protected: virtual OLESTATUS OnSetHostNames( const char FAR* lpszHost, const char FAR* lpszHostObj ); Kasus2 4�2�R�=��~Q�=�����ParameterDescription��*sas8 >�i�R�=��~�=���������lpszHostA null-terminated string that specifies the name of the client application. lpszHostObjA null-terminated string that specifies the client's name for the document. 4us�s) "��2�������Remarks��asgs. *�I�2���������This callback function is called when the client sets or changes the host names for this item. Override this function if you need to save these names. Returns���s#s9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. 5gsXs) "��2�������See AlsoT$#s�s0 0�H�2���㙭YI������COleClientItem::SetHostNames �jXsGs1����������Gs�ssCOleServerDoc::RegisterEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")D�s�s) "�6�2�������COleServerDoc::Register~FGs	s8 @���r�=���~��������BOOL Register( COleServer* pServer, const char FAR* lpszDoc );)�s2s& ��2������K	s}s2 4�2�R�=��~Q�=�����ParameterDescription��2s\	s8 >�O�R�=��~�=���������pServerA pointer to an OLE server that is already registered. lpszDocA null-terminated string that specifies the fully qualified name of the server document. 4}s�	s) "��2�������Remarksx\	ss] ��7�2��������F1����`z8�����X������0������Call this function if the server document was opened by the user (for example, the Open command on the File menu). Do not call it if the server document was created in one of the COleServer callbacks (OnCreateDocFromTemplate, OnOpenDoc, OnEditDoc, OnCreateDoc). �h�	s�s1�����������s�s�
sCOleServerDoc::RevokeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")Bs�s) "�2�2�������COleServerDoc::Revoke>�s!s, (�$�r�=���~����void Revoke();)�sJs& ��2������4!s~s) "��2�������Remarks�Js�
s9 @���2�����Mb.�������Revokes (shuts down) the server document and waits for that operation to finish. Because the Revoke member function is called by the COleServerDoc destructor, it is seldom called explicitly elsewhere. �l~s&s1	���������&slsF@sCOleServerDoc::m_hPaletteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerDoc')")F�
sls) "�:�2�������COleServerDoc::m_hPaletteA&s�s(  �2�������HPALETTE m_hPalette; 4ls�s) "��2�������Remarks�r�s�s3 6���2�����������This variable holds the color-scheme identifier as specified by the client document (or is NULL). See Also�l�sF@sH `���2������������V�����Z�F���COleServerItem::OnSetColorScheme, COleClient�sF@s�
sItem::SetColorScheme, COleServerItem::m_hPalette �d�s�@s1V����������@sAsAMsclass COleServerItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `oleclasses')")AF@sAs) "�0�2�������class COleServerItem9�@sUAs* $����R�����Description�As`Cs> J������������������COleServerItem is the Microsoft Foundation Class Library base class for Object Linking and Embedding (OLE) server items. OLE items are the entities (graphs, pictures, text blocks, and so forth) that are passed between clients and servers. Note Windows 3.1 OLE documentation refers to client items as "objects." This reference uses the term "item" to differentiate the OLE entity from the corresponding C++ class object. #include <afxole.h> See Also`%UAs�Cs; F�J����|��������e������COleServer, COleServerDoc K`CsDs0 0�6�2����������Public MembersStatus^�CsiEsX ~�
�R���~���N�c!������b̀������'��������GetDocumentReturns the server document that contains this server item. GetMetafileDataBuilds a Windows metafile that contains a picture of the server item. GetNativeDataCalls CObject::Serialize to get native-format data into a memory block. 7Ds�Es) "��2�������Operations��iEsqFsD V��R����~��㿵��������8�6������NotifyClientNotifies the client that this server item has changed. NotifyChangedUpdates all clients with automatic link update. >�Es�Fs) "�*�2�������Protected Members9qFs�Fs) "� �2�������Data Members�y�Fs�GsC V���R����~���Z�Fр�������BN������m_hPaletteThe client item color-scheme identifier. m_rectBoundsThe most recent item size set by the client. E�Fs�Gs) "�8�2�������Construction/Destruction�e�Gs�HsI b���R�сK~���گ����������s]VU������COleServerItemConstructs a COleServerItem object. ~COleServerItemDestroys the object. 3
�Gs�Hs) "��2�������Status�`�Hs_Is5 :���R�y��~�y���������IsConnectedIndicates whether the server item is currently attached  to an active client. E�Hs�Is) "�8�2�������Overridables (callbacks)*�_Is�Ks� �A�R���~���+#ك������n6ǃ������m��������&�������7[������k��������k��p������OnShowCalled on the client's request to show this item. OnDrawCalled on the client's request to draw this item. OnReleaseCalled on the client's request to delete the server item. OnExtraVerbCalled to execute extra verbs. OnSetTargetDeviceCalled to set the item's target device. OnSetBoundsCalled to set the item size. OnGetTextDataCalled to get item data as a text string. s��IsAMsx ����R���~������������yv+��������	ꌀ�����@�Tɀ����+#ك����&������OnSetColorSchemeCalled to set the item's color scheme. OnEnumFormatsCalled to enumerate available data formats. OnSetDataCalled to set item data. OnDoVerbCalls the OnShow and (optionally) OnExtraVerb member functions. �r�Ks�Ms1����������Ms.NsOsCOleServerItem::COleServerItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")J"AMs.Ns(  �D�������COleServerItem::COleServerItemZ&�Ms�Ns4 8�L�pȘR���������protected: COleServerItem(); 4.Ns�Ns) "��2�������RemarksU)�NsOs, (�R�2��������Constructs a COleServerItem object. �s�Ns�Os1����������Os
�s�sCOleServerItem::~COleServerItemEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")L#Os
�s) "�F�2�������COleServerItem::~COleServerItem�Os
�sOs['�Osh�s4 8�N�pȘR���������protected: ~COleServerItem(); 4
�s��s) "��2�������RemarksW1h�s�s& �b�2������This destructor makes no calls to OLECLI.DLL. �o��s��s1M�����������sہs��sCOleServerItem::GetDocumentEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")H�sہs) "�>�2�������COleServerItem::GetDocumentS'��s.�s, (�N�r�=���~����COleServerDoc* GetDocument() const;)ہsW�s& ��2������4.�s��s) "��2�������RemarkslFW�s��s& ���2������Returns the server document object that contains this server item. �s��s��s1�����������s�s��sCOleServerItem::GetMetafileDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")L#��s�s) "�F�2�������COleServerItem::GetMetafileDataQ%��s8�s, (�J�r�=���~����virtual HANDLE GetMetafileData();)�sa�s& ��2������48�s��s) "��2�������Remarks��a�s}�s; D�[�2�����n6ǃ���������This helper function calls the OnDraw member function to build a Windows metafile that contains a picture of the server item. This is an advanced feature. ReturnsD��s��s& �<�2������A Windows metafile handle. �q}�sc�s1���������c�s��s��sCOleServerItem::GetNativeDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")J!��s��s) "�B�2�������COleServerItem::GetNativeDataO#c�s��s, (�F�r�=���~����virtual HANDLE GetNativeData();)��s%�s& ��2������4��sY�s) "��2�������Remarks��%�sO�s5 8���2������������This helper function calls the CObject::Serialize member function to build a block of memory that contains the server item data in serialized form. This is an advanced feature. ReturnsL&Y�s��s& �L�2������A handle to Windows global memory. �oO�s;�s1M���������;�s��s��sCOleServerItem::IsConnectedEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")H��s��s) "�>�2�������COleServerItem::IsConnected\(;�s߉s4 8�P�pȘR���������protected: BOOL IsConnected(); 4��s�s) "��2�������Remarks�Z߉s��s2 4���2����������Returns TRUE if this server item is connected to its client item; otherwise FALSE. �q�sA�s1|���������A�s��s֌sCOleServerItem::NotifyChangedEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")J!��s��s) "�B�2�������COleServerItem::NotifyChangedEA�sЋs, (�2�r�=���~����void NotifyChanged();)��s��s& ��2������4Ћs-�s) "��2�������Remarks�w��s֌s2 4���2��������������Updates all clients with automatic link update. Call NotifyChanged after change occurs in a linked server item. �p-�sw�s1����������w�s��s��sCOleServerItem::NotifyClientEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")I ֌s��s) "�@�2�������COleServerItem::NotifyClientk9w�s+�s2 4�r�r�=���~������int NotifyClient( OLE_NOTIFICATION wNotification );)��sT�s& ��2������K+�s��s2 4�2�R�G��~Q�G�����ParameterDescriptionyJT�s�s/ .���R�G��~�G�����wNotificationAn OLE notification code. Must be one of the following: C��s[�s2 4�"�R�c��}Q�c�����ValueMeaning\�s��sX ~�	�R�c��}�c�������������������������OLE_CHANGEDItem has been changed OLE_SAVEDItem has been saved OLE_CL[�s��s֌sOSEDItem has been closed OLE_RENAMEDItem has been renamed OLE_QUERY_PAINTInterruptible paint support OLE_RELEASEItem is released (asynchronous operation is completed) 4[�s��s) "��2�������Remarks�]��s��s- *���2���������Notifies the client that this server item has changed. Rarely called directly. See AlsoU%��s��s0 0�J�2�����8�6������COleServerItem::NotifyChanged �l��ss�s1����������s�s��s)�sCOleServerItem::OnDoVerbEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")E��s��s) "�8�2�������COleServerItem::OnDoVerb�hs�sy�sY ����pȘR����������������������protected: virtual OLESTATUS OnDoVerb( UINT nVerb, BOOL bShow, BOOL bTakeFocus ); K��s��s2 4�2�R�M��~Q�M�����ParameterDescription;�y�s��sL f���R�M��~�M�����������������nVerbServer verb index; 0 is the primary index, 1 is the secondary index, and so forth. bShowTRUE if the server should show the item when it performs the operation. bTakeFocusTRUE if the server should set the input focus. 4��s3�s) "��2�������Remarks`��s��sM h�'�2��������+#ك����&���������Called in response to a COleClientItem::Activate call. This is an implementation function that calls the OnShow member function and, for nonprimary verbs, OnExtraVerb. Override this virtual function if your primary verb does not simply show the item. Returns��3�sO�s9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. 5��s��s) "��2�������See Also�]O�s)�sH `���2����J��N����+#ك����&�������COleClientItem::Activate, COleServerItem::OnShow, COleServerItem::OnExtraVerb �j��s��s10�����������s�s�sCOleServerItem::OnDrawEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")C)�s�s) "�4�2�������COleServerItem::OnDraw�E��s��s@ P���pȘR�������������protected: virtual BOOL OnDraw( CMetaFileDC* pDC ) = 0; K�s��s2 4�2�R�=��~Q�=�����ParameterDescription�P��sb�s; F���R�=��~�=���㪌�����pDCA pointer to a CDC device context object on which to draw the item. 4��s��s) "��2�������Remarks$�b�s��s@ N���2���������������You must implement this function to draw the server item to the boundaries set in the m_rectBounds data member. The OnDraw member function is called in response to the client's COleClientItem::Draw function. See AlsoL��s�s0 0�8�2������Ͻ������COleClientItem::Draw �q��s��s1������������s��s�tCOleServerItem::OnEnumFormatsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")J!�s��s) "�B�2�������COleServerItem::OnEnumFormats�_��s��sG ^���pȘR����������������protected: virtual OLECLIPFORMAT OnEnumFormats( OLECLIPFORMAT nFormat ) const; K��s��s2 4�2�R�=��~Q�=�����ParameterDescriptionv4��sY�sB R�i�R�=��~�=�����������nFormatSpecifies the format returned by the previous call to the OnEnumFormats member function. For the first call to this function, this parameter is NULL. This parameter can be one of the predefined Clipboard formats or the value returned by the native Windows RegisterClipboardFormat function. 4��s��s) "��2�������RemarksIY�s�t/ ,�5�2����������This function is called repeatedly to enumerate the Clipboard forma��s�t�sts that are supported by this server. The default function handles native, metafile, and text formats, but it does not handle bitmaps. Override this function if your server item supports more formats. Returns~R��s`t, (���2��������The next (or first) available format; NULL if no more formats are available. 5�t�t) "��2�������See AlsoS#`t�t0 0�F�2�����!�������COleClientItem::EnumFormats �o�t�t1V����������t�t�tCOleServerItem::OnExtraVerbEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")H�t�t) "�>�2�������COleServerItem::OnExtraVerb�E�tUt@ P���pȘR�������������protected: virtual OLESTATUS OnExtraVerb( UINT nVerb ); K�t�t2 4�2�R�=��~Q�=�����ParameterDescriptionyJUtt/ .���R�=��~�=�����nVerbServer verb index; 1 is secondary, 2 is tertiary, and so forth. 4�tMt) "��2�������Remarks�tbt@ N���2�������+#ك��������Called in response to a client request (COleClientItem::Activate) to execute a nonprimary verb. Client requests to execute a primary verb (index of 0) are handled by the OnShow member function. Returns��Mtt9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. 5btSt) "��2�������See Also�Zt�tH `���2����+#ك����@�Tɀ���J��N������COleServerItem::OnShow, COleServerItem::OnDoVerb, COleClientItem::Activate �qSt�t1�����������t�t�
tCOleServerItem::OnGetTextDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")J!�t�t) "�B�2�������COleServerItem::OnGetTextData�N�tot@ P���pȘR�������������protected: virtual BOOL OnGetTextData( CString& rStringReturn ); K�t�t2 4�2�R�M��~Q�M�����ParameterDescription�`otI	t/ .���R�M��~�M�����rStringReturnA reference to a null-terminated string used to store the returned text data. 4�t}	t) "��2�������Remarks�~I	t.
t3 6���2�����������Override this function if your server returns its data in text form. The default implementation returns FALSE. Returnsf7}	t�
t/ .�n�2���������TRUE if text data is supported; otherwise FALSE. �m.
t2t1����������2txt=tCOleServerItem::OnReleaseEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")F�
txt) "�:�2�������COleServerItem::OnReleaseg32t�t4 8�f�pȘR���������protected: virtual OLESTATUS OnRelease(); 4xtt) "��2�������Remarks���t�t5 8�k�2������������This virtual callback is usually called in response to COleClientItem::Delete. Override this function to delete the server item. There is no default implementation. Returns��t�
t9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. 5�t�
t) "��2�������See AlsoO�
t=t0 0�>�2����Gn������COleClientItem::Release �o�
t�t1	����������t%t�BtCOleServerItem::OnSetBoundsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")H=t%t) "�>�2�������COleServerItem::OnSetBounds�J�t�tF \���pȘR�����������������protected: virtual OLESTATUS OnSetBounds( LPRECT lpRect ); K%t@t2 4�2�R�=��~Q�=�����ParameterDescription�t@t=t�q�t�@t; F���R�=��~�=���������lpRectA pointer to a CRect object or RECT structure that is the destination for the bounds information. 4@t�@t) "��2�������Remarks���@t�At: B�-�2�������������This virtual callback function is called in response to COleClientItem::SetBounds. The default updates the m_rectBounds data member. Returns���@txBt9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. 5�At�Bt) "��2�������See AlsoQ!xBt�Bt0 0�B�2�����[C������COleClientItem::SetBounds �t�Bt�Ct1����������Ct�Ct�GtCOleServerItem::OnSetColorSchemeEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")M$�Bt�Ct) "�H�2�������COleServerItem::OnSetColorScheme�\�Ct�DtG ^���pȘR����������������protected: virtual OLESTATUS OnSetColorScheme( LPLOGPALETTE lpLogPalette ); K�Ct�Dt2 4�2�R�M��~Q�M�����ParameterDescriptionu@�DtSEt5 :���R�M��~�M�������lpLogPaletteA pointer to a Windows LOGPALETTE structure. 4�Dt�Et) "��2�������Remarks�SEt�Ft: B���2�������������This virtual callback function is called in response to COleClientItem::SetColorScheme. The default updates the m_hPalette data member. Override this function if you need to do more. Returns���EtEGt9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. 5�FtzGt) "��2�������See AlsoV&EGt�Gt0 0�L�2�����V�������COleClientItem::SetColorScheme �mzGtnHt1����������nHt�Ht
NtCOleServerItem::OnSetDataEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")F�Gt�Ht) "�:�2�������COleServerItem::OnSetData�bnHtfItP p���pȘR�������������������protected: virtual OLESTATUS OnSetData( OLECLIPFORMAT nFormat, HANDLE hData ); K�Ht�It2 4�2�R�=��~Q�=�����ParameterDescription]fItKt> J�?�R�=��~�=�����������nFormatSpecifies the format of the data. This parameter can be one of the predefined Clipboard formats or the value returned by the native Windows RegisterClipboardFormat function. hDataIdentifies a global Windows memory object that contains the data in the specified format. 4�ItBKt) "��2�������Remarks�QKt�Lt: B���2�������������This virtual callback function is called in response to COleClientItem::SetData. Override this function to process nonnative formats. The default implementation handles the native data format through a call to the virtual CObject::Serialize function, which is responsible for determining the storage format of the data. Returns��BKt�Mt9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. 5�Lt�Mt) "��2�������See AlsoO�Mt
Nt0 0�>�2���㉾�[������COleClientItem::SetData �u�Mt�Nt1�����������NtOtp�tCOleServerItem::OnSetTargetDeviceEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")N%
NtOt) "�J�2�������COleServerItem::OnSetTargetDevice�V�Nt�Ot@ P���pȘR�������������protected: virtual OLESTATUS OnSetTargetDevice( LPVOID lpTargetDevice ); KOt�t2 4�2�R�{��~Q�{�����ParameterDescription�Ot�t
Nt�}�Ot��t5 :���R�{��~�{�������lpTargetDeviceIdentifies a native OLE StdTargetDevice memory structure that describes the target device for the item. 4�t�t) "��2�������Remarks6���t(�t; D���2��������������Override this function to process a request from the client to change the target device. OnSetTargetDevice is called in response to the COleClientItem::SetTargetDevice member function. The default implementation ignores the request. Returns���t�t9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. 5(�t�t) "��2�������See AlsoW'�tp�t0 0�N�2����2�S������COleClientItem::SetTargetDevice �j�t�t1{����������tN�t��tCOleServerItem::OnShowEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")Cp�tN�t) "�4�2�������COleServerItem::OnShow�I�tׄt@ P���pȘR�������������protected: virtual OLESTATUS OnShow( BOOL bTakeFocus ) = 0; KN�t"�t2 4�2�R�M��~Q�M�����ParameterDescription�Yׄt��t; F���R�M��~�M���������bTakeFocusTRUE if the server item should take the input focus; otherwise FALSE. 4"�t�t) "��2�������Remarks���t�t: B���2�������������You must override this pure virtual function to process a client request to show an item that results from a primary-verb COleClientItem::Activate call. Ordinarily, OnShow makes the server item visible. Returns���t��t9 @��2�����4���������See the COleException class for a list of return values. The value OLE_OK indicates that the function operated correctly. 5�t�t) "��2�������See Also�_��t��tH `���2����@�Tɀ���&�����J��N������COleServerItem::OnDoVerb, COleServerItem::OnExtraVerb, COleClientItem::Activate �n�t7�t1����������7�t~�t"�tCOleServerItem::m_hPaletteEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")G��t~�t) "�<�2�������COleServerItem::m_hPalette])7�tۉt4 8�R�pȘR���������protected: HPALETTE m_hPalette; 4~�t�t) "��2�������Remarks`ۉto�tF Z�5�2���������n6ǃ��������This variable holds the color-scheme identifier as specified by the client item (or NULL). You will seldom need to access the m_hPalette data member because the default OnDraw member function selects this color palette into the drawing device context for you. See Also�k�t"�tH `���2������������V������ـ�����COleServerItem::OnSetColorScheme, COleClientItem::SetColorScheme, COleServerDoc::m_hPalette �po�tÌt1����������Ìt�t��tCOleServerItem::m_rectBoundsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleServerItem')")I "�t�t) "�@�2�������COleServerItem::m_rectBounds\(Ìth�t4 8�P�pȘR���������protected: CRect m_rectBounds; 4�t��t) "��2�������RemarksGh�t�t@ N��2���������������This variable holds the last item size set by the client (or a null rectangle if unknown or not yet set). Note that this rectangle is in MM_HIMETRIC units. Use CRect::IsRectNull (not CRect::IsRectEmpty) to test whether the bounds are unknown. See Also�V��t��tH `���2���������k������n6ǃ������CRect::IsRectNull, COleServerItem::OnSetBounds, COleServerItem::OnDraw �c�t!�t1����������!�ta�t�tclass COleExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.��t!�t��thlp', `oleclasses')")@��ta�t) "�.�2�������class COleException9!�t��t* $����R�����Description��a�tl�t3 4�?�����������A COleException object is generated (an exception is thrown) in response to an Object Linking and Embedding (OLE) error condition. #include <afxole.h> ;��t��t) "�$�2�������Public Members9l�t��t) "� �2�������Data Members�U��tj�t5 :���R�����]f������m_statusContains the status code that indicates the reason for the exception. =��t��t) "�(�2�������Member Functionst9j�t�t; F�r�R����~���
ƀ�������COleExceptionConstructs a COleException object. �o��t��t1������������t�tuCOleException::COleExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleException')")H �t�t(  �@�������COleException::COleExceptionZ(��t]�t2 4�P�r�=���~������COleException( OLESTATUS status );)�t��t& ��2������K]�t��t2 4�2�R�=��~Q�=�����ParameterDescription�~��t~�t/ .���R�=��~�=�����statusAn enumerated type variable that indicates the reason for the exception. Must be one of the following enumerators: C��t��t2 4�"�R��=|Q������ValueMeaning�~�t��th ��[�R��=|����������������������������������OLE_OKFunction operated correctly (does not throw an exception). OLE_BUSYTried to execute a member function while another operation was in progress. OLE_ERROR_STREAMOLESTREAM stream error. OLE_ERROR_STATICNonstatic object expected. OLE_ERROR_BLANKCritical data missing. OLE_ERROR_DRAWError while drawing. OLE_ERROR_METAFILEInvalid metafile. OLE_ERROR_ABORTClient chose to abort metafile drawing. +���t�th ����R��=|����������������������������������OLE_ERROR_CLIPBOARDFailed to get or set Clipboard data. OLE_ERROR_FORMATRequested format is not available. OLE_ERROR_GENERICA general error. OLE_ERROR_DATATYPEData format is not supported. OLE_ERROR_PALETTEInvalid color palette. OLE_ERROR_NOT_LINKNot a linked object. OLE_ERROR_NOT_EMPTYClient document contains items. OLE_ERROR_SIZEIncorrect buffer size passed to the API that places a string in the caller's buffer. W���tX�t` ����R��=|������������������������������OLE_ERROR_DRIVEDrive letter in document name is invalid. OLE_ERROR_NETWORKFailed to establish connection to a network share on which the document is located. OLE_ERROR_NAMEInvalid name (document name, item name, etc.) passed to the APIs. OLE_ERROR_TEMPLATEServer failed to load a template. OLE_ERROR_NEWServer failed to create a new document. OLE_ERROR_EDITServer failed to create an embedded instance. OLE_ERROR_OPENServer failed to open a document, possible invalid link. Q��t��tp ����R��=|��������������������������������������OLE_ERROR_NOT_OPENObject is not open for editing. OLE_ERROR_LAUNCHFailed to launch a server. OLE_ERROR_COMMFailed to communicate with a server. OLE_ERROR_TERMINATEError in termination. OLE_ERROR_COMMANDError in execution. OLE_ERROR_SHOWError in showing. OLE_ERROR_DOVERBError in sending do verb, or invalid verb. OLE_ERROR_ADVISE_NATIVEItem could be missing. OLE_ERROR_ADVISE_PICTItem could be missing or server doesn't understand this format. �X�t�uX ~���R��=|��������������������������OLE_ERROR_ADVISE_RENAMEServer doesn't support rename. OLE_ERROR_POKE_NATIVEFailure in poking native data to server. OLE_ERROR_REQUEST_NATIVEServer failed to render native data. OLE_ERROR_REQUEST_PICTServer failed to render presentation data��t�u�t. OLE_ERROR_SERVER_BLOCKEDTrying to block a blocked server, or trying to revoke a blocked server or document. OLE_ERROR_REGISTRATIONServer is not registered in OLE registration database. ����t�uX ~�#�R��=|��������������������������OLE_ERROR_ALREADY_REGISTEREDTrying to register the same document multiple times. OLE_ERROR_TASKServer or client task is invalid. OLE_ERROR_OUTOFDATEItem is out of date. OLE_ERROR_CANT_UPDATE_CLIENTClient of the embedded document doesn't accept updates. OLE_ERROR_UPDATEError while trying to update. OLE_WARN_DELETE_DATACaller must delete the data when done with it (warning). 4�u�u) "��2�������Remarks���u�uA P�-�2��������*��_��������Constructs a COleException object. Do not use this constructor directly; instead, call the global function AfxThrowOleException. See AlsoL�uu0 0�8�2����*��_������AfxThrowOleException �j�u�u1M����������u�uuCOleException::m_statusEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `COleException')")Du�u) "�6�2�������COleException::m_status4
�u$u* $����R�����Syntax@�udu(  �0�������OLESTATUS m_status; 4$u�u) "��2�������Remarks �du�u; D���2��������������This data member holds the status code that indicates the reason for the exception. This variable is set by the constructor. See the COleException constructor documentation for a list of OLESTATUS enumerators. See AlsoT$�uu0 0�H�2����
ƀ�����COleException::COleException �d�u�u1�����������u�uH
uOLE Global FunctionsEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `oleclasses')")Au�u) "�0�2�������OLE Global Functions~Y�u`u% ��������The global functions described below are useful for implementing OLE user interfaces. ���uH
u` ���R�G��}�G��𴥀������f�������4�������*��_������AfxOleSetEditMenuUpdates the client's document window menu with the appropriate server name and applicable verbs. AfxOleInsertDialogAllows the user to choose a server from a list of registered applications. AfxOleLinksDialogAllows the user to update this client's OLE links. AfxThrowOleExceptionAllows the user to throw an OLE exception for program testing purposes. �k`u�
u1
����������
u!u>CuAfxOleSetEditMenuEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `OLE_Global_Functions')")=H
u!u(  �*�������AfxOleSetEditMenu�m�
u�uD X���r�=���~������������void AfxOleSetEditMenu( COleClientItem* pClient, CMenu* pMenu, UINT iMenuItem, UINT nIDVerbMin );)!u�u& ��2������K�uFu2 4�2�R�=��~Q�=�����ParameterDescription1��uw
uH ^���R�=��~�=�����������������pClientA pointer to the client item. pMenuA pointer to the menu object that is to be updated. iMenuItemThe index of the menu item that is to be updated. nIDVerbMinThe command ID that corresponds to the primary verb. 4Fu�
u) "��2�������RemarksOw
u@u9 @�-�2������������This global function updates the client's document window menu with the appropriate server name and applicable verbs. If the server recognizes only a primary verb, then no verbs appear on the menu and the nIDVerbMin command is sent when the user clicks the server name. If the server recognizes several verbs, then a pop-up verb list appears when the user clicks the server name. When the user selects a verb, nIDVerbMin is sent if the first verb is chosen, nIDVerbMin + 1 is sent if the second verb is chosen, and so forth. �
u@uH
u+��
u7BuR r���2�������H���������������To process the menu commands, you can override CWnd::OnCommand, then filter command messages (identified by the OnCommand lParam parameter) that are in the range of valid verbs (nIDVerbMin and greater). Subtract nIDVerbMin from the command parameter, yielding the zero-based verb index. Use this index as a parameter to the COleClientItem::Activate member function. You must have the following statements in your client application's resource (.RC) file: �H@u�Bu< H���R�	�~�	����������#include <afxoleui.h>#include <afxres.h>#include <afxoleui.rc>47Bu�Bu(  ��������See AlsoO �Bu>Cu/ .�@����J��N������COleClientItem::Activate �l�Bu�Cu1�����������CuDu�GuAfxOleInsertDialogEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `OLE_Global_Functions')")>>CuDu(  �,�������AfxOleInsertDialoga/�CuzDu2 4�^�r�=���~������BOOL AfxOleInsertDialog( CString& name );)Du�Du& ��2������KzDu�Du2 4�2�R�=��~Q�=�����ParameterDescription�M�DupEu5 :���R�=��~�=�������nameA reference to a CString to store the name that the user chooses. 4�Du�Eu) "��2�������Remarks��pEu�Fu( �}�2�������This global function prompts the user to choose a server from a list of registered applications. You must have the following statements in your client application's resource (.RC) file: �H�EuGu< H���R�	�~�	����������#include <afxoleui.h>#include <afxres.h>#include <afxoleui.rc>3�FuAGu(  ��������Returns�lGu�Gu4 8�������������TRUE if successful; otherwise FALSE. Returns FALSE if the required dialog resource cannot be found. �kAGu}Hu1����������}Hu�HubLuAfxOleLinksDialogEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `OLE_Global_Functions')")=�Gu�Hu(  �*�������AfxOleLinksDialogf4}Hu Iu2 4�h�r�=���~������BOOL AfxOleLinksDialog( COleClientDoc* pDoc );)�HuIIu& ��2������K Iu�Iu2 4�2�R�=��~Q�=�����ParameterDescriptionvGIIu
Ju/ .���R�=��~�=�����pDocA pointer to the OLE client document that contains the links. 4�Iu>Ju) "��2�������Remarks��
JuKu( �K�2�������This global function allows the user to update this client's OLE links. You must have the following statements in your client application's resource (.RC) file: �H>Ju�Ku< H���R�	�~�	����������#include <afxoleui.h>#include <afxres.h>#include <afxoleui.rc>3Ku�Ku(  ��������Returns�l�KubLu4 8�������������TRUE if successful; otherwise FALSE. Returns FALSE if the required dialog resource cannot be found. �n�KuMu1	���������MuAMu%�uAfxThrowOleExceptionEnableButton("up");ChangeButtonBinding("up", "JI(`mfc10wh.hlp', `OLE_Global_Functions')")@bLuAMu(  �0�������AfxThrowOleExceptiong5Mu�Mu2 4�j�r�=���~������void AfxThrowOleException ( OLESTATUS status );)AMu�Mu& ��2������K�MuNu2 4�2�R�=��~Q�=�����ParameterDescription�r�Mu�Nu/ .���R�=��~�=�����statusAn OLESTATUS parameter that indicates the error code. See the ole.h include file for more information. 4Nu�Nu) "��2�������Remarks(�Nu%�u( ��2�������Throws an OLE exception. This is a helper function used in the implementation of the Microsoft Foundation Classes. Call this function if OLE operations fail. You will usually not have to call this function except as a programming�Nu%�ubLu aid in your own code. P�Nuu�u1����������u�u��u��uGetDocumentDisableButton("up")8%�u��u) "��2�������GetDocument��u�uu�u& �E������The identifier you have selected corresponds to member functions in several Foundation OLE classes. Select the specific function you want from the list below: �F��u��uC V���R��:�`���6�l������N�c!�����COleClientItem::GetDocument COleServerItem::GetDocument Pu�uN�u1����������N�u��uԃuGetNextItemDisableButton("up")7��u��u(  ��������GetNextItem��N�uM�u& �E������The identifier you have selected corresponds to member functions in several Foundation OLE classes. Select the specific function you want from the list below: �D��uԃuC V���R��:�`���\�g��������~R�����COleClientDoc::GetNextItem COleServerDoc::GetNextItem KM�u�u1�����������uQ�u�uIsOpenDisableButton("up")2
ԃuQ�u(  ��������IsOpen���u�u& �E������The identifier you have selected corresponds to member functions in several Foundation OLE classes. Select the specific function you want from the list below: �pQ�u�u_ ����R��:�`��㠣�8������<�[w�����㔫�р�����;nu�����COleServer::IsOpen COleClientDoc::IsOpen COleServerDoc::IsOpen COleClientItem::IsOpen O�u7�u1y���������7�um�u��um_hPaletteDisableButton("up")6�um�u(  ��������m_hPalette��7�u/�u& �9������The identifier you have selected corresponds to data members in several Foundation OLE classes. Select the specific member you want from the list below: �Cm�u��uC V���R��:�`����ـ�����Z�Fр����COleServerDoc::m_hPalette COleServerItem::m_hPalette R!/�u�u1�����������u@�u��uNotifyChangedDisableButton("up")9��u@�u(  �"�������NotifyChanged���u�u& �E������The identifier you have selected corresponds to member functions in several Foundation OLE classes. Select the specific function you want from the list below: �I@�u��uC V���R��:�`���o4��������8�6�����COleServerDoc::NotifyChanged COleServerItem::NotifyChanged Q �u�u1�����������u�un�uNotifyRenameDisableButton("up")8��u�u(  � �������NotifyRename���u�u& �E������The identifier you have selected corresponds to member functions in several Foundation OLE classes. Select the specific function you want from the list below: �F�un�uC V���R��:�`�����'������u������COleClientDoc::NotifyRename COleServerDoc::NotifyRename Q �u��u1������������u��uH�uNotifyRevertDisableButton("up")8n�u��u(  � �������NotifyRevert����u��u& �E������The identifier you have selected corresponds to member functions in several Foundation OLE classes. Select the specific function you want from the list below: �F��uH�uC V���R��:�`���a�1������yG������COleClientDoc::NotifyRevert COleServerDoc::NotifyRevert P��u��u1������������uύu�uNotifySavedDisableButton("up")7H�uύu(  ��������NotifySaved����u��u& �E������The identifier you have selected corresponds to member functions in several Foundation OLE classes. Select the specific function you want from the list below: �Dύu�uC V���R��:�`�����ɀ�������]�����COleClientDoc::NotifySaved COleServerDoc::NotifySaved N��ul�u1����������l�u��u��uOnExecuteDisableButton("up")5
�u��u(  ��������OnExecute��l�uu�u& �E������The identifier you have selected corresponds to member f��uu�u�uunctions in several Foundation OLE classes. Select the specific function you want from the list below: �=��u��uC V�z�R��:�`����m�ƀ������vI������COleServer::OnExecute COleServerDoc::OnExecute Nu�uC�u1z���������C�ux�u��uOnReleaseDisableButton("up")5
��ux�u(  ��������OnRelease��C�u@�u& �E������The identifier you have selected corresponds to member functions in several Foundation OLE classes. Select the specific function you want from the list below: �>x�u��uC V�|�R��:�`��㔳�C������m�������COleServer::OnRelease COleServerItem::OnRelease U$@�u�u1�����������uR�u��uOnSetColorSchemeDisableButton("up")<��uR�u(  �(�������OnSetColorScheme���u�u& �E������The identifier you have selected corresponds to member functions in several Foundation OLE classes. Select the specific function you want from the list below: �OR�u��uC V���R��:�`���1�Q��������������COleServerDoc::OnSetColorScheme COleServerItem::OnSetColorScheme M�u��u1������������u-�u��uRegisterDisableButton("up")4��u-�u(  ��������Register����u��u& �E������The identifier you have selected corresponds to member functions in several Foundation OLE classes. Select the specific function you want from the list below: �Y-�u��uQ r���R��:�`����A�Ԁ�����ƽɀ�����K��'�����COleServer::Register COleClientDoc::Register COleServerDoc::Register K��u��u1v�����������u�ua�uRevokeDisableButton("up")2
��u�u(  ��������Revoke����u��u& �E������The identifier you have selected corresponds to member functions in several Foundation OLE classes. Select the specific function you want from the list below: }:�ua�uC V�t�R��:�`����]fÀ�����>W������COleClientDoc::Revoke COleServerDoc::Revoke 1��u����1����������������������
lHelv-

Date:       Times New Roman92 1CourierLCL
From: AnZapfDingbatsNN.HDESSymbol.HYPERDESK.CO�������������������ȇ���������	�M��������������g������������������$��X���Ԁ���p��
�i����!�U������ׁ�@��@������P�U�a�q���O�L���P7��x����	�	P�	��	�

`�
�
���m�?k��P
�
0
�
�
&�
���������B������D(��+�J*��|���Y�y���������ňaH��.�������sy��n���p����5��yp�v�i������7����3����	/�V���b���߄߅��!P�C �  a� :� �� �!S!�!׀!Ç!�"!"��"~�"l#���#�#��#�#dž#$�$��$X�$%�%	�%�&&'G'��J'ۀ'(�(R(��(��(C)��)q�)W�)�*��*B�*~+�+�+ �+,V�,J�,.�.x�.͉.�/p/�/��/߉/�0�0@	0�0r���Ԁ�Ӂ���焠�1�1j�1$�1�19222?���2�23�3���3�3]3'�3��34�4#4E4�4a�4��4L��x5"	5��5��5�6��$�����������c��u�|�$���{����m��6��؁���������큧)����1����6�6�7�8{�8��8��8�9g9�9H:|�9Ӈ9:�:��:��:ф:�:�;h�;D;E�������Q�@
��#�:��G-;�����0r�������6�8�9��;���#��]����G������@OBX����
D*_K�F��g����x��†����������LM)�N��O�����ĂP|����T��X��YՂZ݄�����������C[�^F`��.��3	
<>�<N�<�=f=R=���=?�=
�=K>���n>`>+>6�>‚>8�>?�?�?'?�??���?�?V@@��@�@.�@����z���7���6���W�-��ڃ��A�A��A�B��A
�A�AІA�B�Bf�BC�C�C�CP�C)�C�C�C�D����H�o������>����F�D-E��E,�E�F�F�F&�F��F�F�GG�G{�G,H�HII�IJ�J�J.�_��_�_`�`݂K�K�L�L�L��$���b�ƀ�肮�������~��;��������y�b���������������U����4��}�b��t�������������^���M����z��L���������������������F�����������7�����:����7���������h�����p���n��ڇ���~�~������X�����O������#��x��ф�4�����������������������	�����������N�d��k�(����b�����B����������.�����������������{��������<�$����������܃�@����y��������c����W�����������#����������w��#����9����������T��;�L��L
�L��LIMN��M[�MR�M*N�N�NyO�N�O��O5�O�P�P��P�Pm�P�P�P������Q�Qp�Q��Q�Q�QsR�RXR�R��S.T��S�T�SYTB�S�S�S�T�TnS΂R��Ry�R�Rᄘ�S�S�S����U�U��U��U��U�V��VK�V�WWXIW�Wl�W˂WX�X=XYx�XɃ�Y.Y�YۃY����Z�ZM�Z�Z�Z��Z�Z�[f[��������p�������	�������u��&�����́���������W��@��������������������f�t	���������k��G������*��L��3�х�>������1������P���������Y��������P�������$������M������ƀ������!��S�r���^�\\�\,�\e�\g�\�]]]�^�^�^Ѐ^i�^��^)�^��]݈]	^�__�_��b��b�aN�b;daI�d��ac�`�b�b�aEdd��da�ac<e�e)	b�c��a��a4�bab�aI�dҀh�e��e�ez�ef�f�f�f�f�fu�f�g�gF�gXhJ
hw�hm�h�hi�i�i��i	jS�j��j��h�j\k�kڀk��kU�k�l�l]lZl�l��lU�l1�l�Em�m�m��m�m�n�n�n�n�n߄nH�ne��oTo�o�o��og�o�o��op�p�p.�pcq⇑�q\�q�q8�q%�qvr�r��rsXs�s�s�sՁs˂sz������s9
ts�t��t�ulu�u
�uv�v�v�v
�v�v�w�w/�w�x*x��xz�x��xy���Zyky2�y��y�zZz2�z��zw{�{h�{/�{|Z|��|�|}�}Y�}+�}Y~%~7�~?�~�������$��ʀ�����^��������6�����������ᄂ��S���t���J��"��p���+��������D������σ�H�����H�����o��	�V��n�������o�O�q���n�����R�9��H��j����:�;�T���烓������������݃������������
��ă�����v	�:��&����%�����8�� ��|�����[�e�����ᆐ������l���n?��*���o�����E���������������H�m�i�����*�o�[�1�|�����������?��U���7������������ׅ�ņ�T��ƒ���������������|��e�q��[�H����������3�����+���������������H������=��*������3�^�X�8�/������݁�6�����CȂ�������������y���;��������������I��m�����!���}������/�R�R���Q������Ȇ���qhL��C��&c�	�
A��
$u�/�&�;)i24������g���L��AddStringAfxAbortAfxCheckMemoryAfxDoForAllClassesAfxDoForAllObjectsAfxEnableMemoryTrackingAfxGetAppAfxGetAppNameAfxGetInstanceHandle AfxGetResourceHandle$AfxIsMemoryBlock(AfxIsValidAddress,afxMemDF0AfxOleInsertDialog4AfxOleLinksDialog8AfxOleSetEditMenu<AfxRegisterWndClass@AfxSetAllocHookDAfxSetAllocStopHAfxSetTerminateLAfxTerminatePAfxThrowArchiveExceptionTAfxThrowFileExceptionXAfxThrowMemoryException\AfxThrowNotSupportedException`AfxThrowOleExceptiondAfxThrowResourceExceptionhAlphabetical Listing of Global FunctionslAlphabetical Listing of MacrospAND_CATCH MacrotASSERT MacroxASSERT_VALID Macro|Attach�BEGIN_MESSAGE_MAP Macro�Button Styles�CArchive::~CArchive�CArchive::CArchive�CArchive::Close�CArchive::Flush�CArchive::GetFile�CArchive::IsLoading�CArchive::IsStoring�CArchive::operator <<�CArchive::operator >>�CArchive::Read�CArchive::ReadObject�CArchive::Write�CArchive::WriteObject�CArchiveException::CArchiveException�CArchiveException::m_cause�CATCH Macro�CBitmap::CBitmap�CBitmap::CreateBitmap�CBitmap::CreateBitmapIndirect�CBitmap::CreateCompatibleBitmap�CBitmap::CreateDiscardableBitmap�CBitmap::FromHandle�CBitmap::GetBitmapBits�CBitmap::GetBitmapDimension�CBitmap::LoadBitmap�CBitmap::LoadOEMBitmap�CBitmap::SetBitmapBits�CBitmap::SetBitmapDimension�CBrush::CBrush�CBrush::CreateBrushIndirectCBrush::CreateDIBPatternBrushCBrush::CreateHatchBrushCBrush::CreatePatternBrushCBrush::CreateSolidBrushCBrush::FromHandleCButton::CButtonCButton::CreateCButton::GetButtonStyle CButton::GetCheck$CButton::GetState(CButton::SetButtonStyle,�������G
�G��GxRCButton::SetCheck0CButton::SetState4CClientDC::~CClientDC8CClientDC::CClientDC<CClientDC::m_hWnd@CComboBox::AddStringDCComboBox::CComboBoxHCComboBox::ClearLCComboBox::CopyPCComboBox::CreateTCComboBox::CutXCComboBox::DeleteString\CComboBox::Dir`CComboBox::FindStringdCComboBox::FindStringExacthCComboBox::GetCountlCComboBox::GetCurSelpCComboBox::GetDroppedControlRecttCComboBox::GetDroppedStatexCComboBox::GetEditSel|CComboBox::GetExtendedUI�CComboBox::GetItemData�CComboBox::GetItemHeight�CComboBox::GetLBText�CComboBox::GetLBTextLen�CComboBox::InsertString�CComboBox::LimitText�CComboBox::Paste�CComboBox::ResetContent�CComboBox::SelectString�CComboBox::SetCurSel�CComboBox::SetEditSel�CComboBox::SetExtendedUI�CComboBox::SetItemData�CComboBox::SetItemHeight�CComboBox::ShowDropDown�CDC::~CDC�CDC::AbortDoc�CDC::Arc�CDC::BitBlt�CDC::CDC�CDC::Chord�CDC::CreateCompatibleDC�CDC::CreateDC�CDC::CreateIC�CDC::DeleteDC�CDC::DPtoLP�CDC::DrawFocusRect�CDC::DrawIcon�CDC::DrawText�CDC::Ellipse�CDC::EndDoc�CDC::EndPageCDC::EnumObjectsCDC::EscapeCDC::ExcludeClipRectCDC::ExcludeUpdateRgnCDC::ExtFloodFillCDC::ExtTextOutCDC::FillRectCDC::FillRgn CDC::FloodFill$CDC::FrameRect(CDC::FrameRgn,CDC::GetAspectRatioFilter0CDC::GetBkColor4CDC::GetBkMode8CDC::GetBoundsRect<CDC::GetBrushOrg@CDC::GetCharABCWidthsDCDC::GetCharWidthHCDC::GetClipBoxLCDC::GetCurrentPositionPCDC::GetDCOrgTCDC::GetDeviceCapsXCDC::GetFontData\CDC::GetGlyphOutline`CDC::GetKerningPairsdCDC::GetMapModehCDC::GetNearestColorlCDC::GetOutlineTextMetricspCDC::GetPixelt���G
�G��GxTCDC::GetPolyFillModexCDC::GetROP2|CDC::GetStretchBltMode�CDC::GetTabbedTextExtent�CDC::GetTextAlign�CDC::GetTextCharacterExtra�CDC::GetTextColor�CDC::GetTextExtent�CDC::GetTextFace�CDC::GetTextMetrics�CDC::GetViewportExt�CDC::GetViewportOrg�CDC::GetWindowExt�CDC::GetWindowOrg�CDC::GrayString�CDC::IntersectClipRect�CDC::InvertRect�CDC::InvertRgn�CDC::LineTo�CDC::LPtoDP�CDC::MoveTo�CDC::OffsetClipRgn�CDC::OffsetViewportOrg�CDC::OffsetWindowOrg�CDC::PaintRgn�CDC::PatBlt�CDC::Pie�CDC::PlayMetaFile�CDC::Polygon�CDC::Polyline�CDC::PolyPolygon�CDC::PtVisible�CDC::QueryAbort�CDC::RealizePalette�CDC::RectangleCDC::RectVisibleCDC::RestoreDCCDC::RoundRectCDC::SaveDCCDC::ScaleViewportExtCDC::ScaleWindowExtCDC::ScrollDCCDC::SelectClipRgn CDC::SelectObject$CDC::SelectPalette(CDC::SelectStockObject,CDC::SetAbortProc0CDC::SetBkColor4CDC::SetBkMode8CDC::SetBoundsRect<CDC::SetBrushOrg@CDC::SetMapModeDCDC::SetMapperFlagsHCDC::SetPixelLCDC::SetPolyFillModePCDC::SetROP2TCDC::SetStretchBltModeXCDC::SetTextAlign\CDC::SetTextCharacterExtra`CDC::SetTextColordCDC::SetTextJustificationhCDC::SetViewportExtlCDC::SetViewportOrgpCDC::SetWindowExttCDC::SetWindowOrgxCDC::StartDoc|CDC::StartPage�CDC::StretchBlt�CDC::TabbedTextOut�CDC::TextOut�CDC::UpdateColors�CDialog::CDialog�CDialog::Create�CDialog::CreateIndirect�CDialog::EndDialog�CDialog::GetDefID�CDialog::GotoDlgCtrl�CDialog::IsDialogMessage�CDialog::MapDialogRect�CDialog::NextDlgCtrl�CDialog::OnInitDialog�CDialog::OnSetFont�CDialog::PrevDlgCtrl�CDialog::SetDefID����G
�G��GxQCDumpContext::CDumpContext�CDumpContext::Flush�CDumpContext::GetDepth�CDumpContext::HexDump�CDumpContext::operator <<�CDumpContext::SetDepth�CEdit::CanUndo�CEdit::CEdit�CEdit::Clear�CEdit::Copy�CEdit::Create�CEdit::Cut�CEdit::EmptyUndoBuffer�CEdit::FmtLines�CEdit::GetFirstVisibleLineCEdit::GetHandleCEdit::GetLineCEdit::GetLineCountCEdit::GetModifyCEdit::GetPasswordCharCEdit::GetRectCEdit::GetSelCEdit::LimitText CEdit::LineFromChar$CEdit::LineIndex(CEdit::LineLength,CEdit::LineScroll0CEdit::Paste4CEdit::ReplaceSel8CEdit::SetHandle<CEdit::SetModify@CEdit::SetPasswordCharDCEdit::SetReadOnlyHCEdit::SetRectLCEdit::SetRectNPPCEdit::SetSelTCEdit::SetTabStopsXCEdit::Undo\CFile::~CFile`CFile::CFiledCFile::ClosehCFile::DuplicatelCFile::FlushpCFile::GetLengthtCFile::GetPositionxCFile::GetStatus|CFile::LockRange�CFile::m_hFile�CFile::Open�CFile::Read�CFile::Remove�CFile::Rename�CFile::Seek�CFile::SeekToBegin�CFile::SeekToEnd�CFile::SetLength�CFile::SetStatus�CFile::UnlockRange�CFile::Write�CFileException::CFileException�CFileException::ErrnoToException�CFileException::m_cause�CFileException::m_lOsError�CFileException::OsErrorToException�CFileException::ThrowErrno�CFileException::ThrowOsError�CFont::CFont�CFont::CreateFont�CFont::CreateFontIndirect�CFont::FromHandle�CFrameWnd::~CFrameWnd�CFrameWnd::CFrameWnd�CFrameWnd::Create�CFrameWnd::LoadAccelTable�CFrameWnd::m_hAccelTable�CFrameWnd::rectDefault�CGdiObject::~CGdiObject�CGdiObject::Attach�CGdiObject::CGdiObjectCGdiObject::CreateStockObjectCGdiObject::DeleteObject���G
�G��GxRCGdiObject::DeleteTempMapCGdiObject::DetachCGdiObject::FromHandleCGdiObject::GetObjectCGdiObject::GetSafeHandleCGdiObject::m_hObject CGdiObject::UnrealizeObject$Child Window Notification Messages(class CArchive,class CArchiveException0class CBitmap4class CBrush8class CButton<class CByteArray@class CClientDCDclass CComboBoxHclass CDCLclass CDialogPclass CDumpContextTclass CDWordArray : public CObjectXclass CEdit\class CException`class CFiledclass CFileExceptionhclass CFontlclass CFrameWndpclass CGdiObjecttclass CListBoxxclass CMapPtrToPtr|class CMapPtrToWord�class CMapStringToOb�class CMapStringToPtr�class CMapStringToString�class CMapWordToOb�class CMapWordToPtr�class CMDIChildWnd�class CMDIFrameWnd�class CMemFile�class CMemoryException�class CMenu�class CMetaFileDC�class CModalDialog�class CNotSupportedException�class CObArray�class CObject�class CObList�class COleClientDoc�class COleClientItem�class COleException�class COleServer�class COleServerDoc�class COleServerItem�class CPaintDC�class CPalette�class CPen�class CPoint�class CPtrArray : public CObject�class CPtrList : public CObject�class CRect�class CResourceException�class CRgn�class CScrollBarclass CSizeclass CStaticclass CStdioFileclass CStringclass CStringArray : public CObjectclass CStringList : public CObjectclass CTimeclass CTimeSpan class CWinApp$class CWindowDC(class CWnd,class CWordArray : public CObject0Clear4Clipboard Formats8CListBox::AddString<CListBox::CListBox@CListBox::CreateDCListBox::DeleteStringHCListBox::DirLCListBox::FindStringPGxCCListBox::FindStringExactTCListBox::GetCaretIndexXCListBox::GetCount\CListBox::GetCurSel`CListBox::GetHorizontalExtentdCListBox::GetItemDatahCListBox::GetItemHeightlCListBox::GetItemRectpCListBox::GetSeltCListBox::GetSelCountxCListBox::GetSelItems|CListBox::GetText�CListBox::GetTextLen�CListBox::GetTopIndex�CListBox::InsertString�CListBox::ResetContent�CListBox::SelectString�CListBox::SelItemRange�CListBox::SetCaretIndex�CListBox::SetColumnWidth�CListBox::SetCurSel�CListBox::SetHorizontalExtent�CListBox::SetItemData�CListBox::SetItemHeight�CListBox::SetSel�CListBox::SetTabStops�CListBox::SetTopIndex�Close�CMapStringToOb::~CMapStringToOb�CMapStringToOb::CMapStringToOb�CMapStringToOb::GetCount�CMapStringToOb::GetNextAssoc�CMapStringToOb::GetStartPosition�CMapStringToOb::IsEmpty�CMapStringToOb::Lookup�CMapStringToOb::operator []�CMapStringToOb::RemoveAll�CMapStringToOb::RemoveKey�CMapStringToOb::SetAt�CMDIChildWnd::CMDIChildWnd�CMDIChildWnd::Create�CMDIChildWnd::GetParentFrame�CMDIChildWnd::m_pMDIFrameWnd�CMDIChildWnd::MDIActivateCMDIChildWnd::MDIDestroyCMDIChildWnd::MDIMaximizeCMDIChildWnd::MDIRestoreCMDIFrameWnd::CMDIFrameWndCMDIFrameWnd::CreateCMDIFrameWnd::CreateClientCMDIFrameWnd::MDIActivateCMDIFrameWnd::MDICascade CMDIFrameWnd::MDIGetActive$CMDIFrameWnd::MDIIconArrange(CMDIFrameWnd::MDIMaximize,CMDIFrameWnd::MDINext0CMDIFrameWnd::MDIRestore4CMDIFrameWnd::MDISetMenu8CMDIFrameWnd::MDITile<CMemFile::~CMemFile@CMemFile::CMemFileDCMemoryException::CMemoryExceptionHCMemoryState::CheckpointLCMemoryState::CMemoryStatePCMemoryState::DifferenceTCMemoryState::DumpAllObjectsSinceXCMemoryState::DumpStatistics\xNCMenu::~CMenu`CMenu::AppendMenudCMenu::AttachhCMenu::CheckMenuItemlCMenu::CMenupCMenu::CreateMenutCMenu::CreatePopupMenuxCMenu::DeleteMenu|CMenu::DestroyMenu�CMenu::Detach�CMenu::EnableMenuItem�CMenu::GetMenuItemCount�CMenu::GetMenuItemID�CMenu::GetMenuState�CMenu::GetMenuString�CMenu::GetSubMenu�CMenu::InsertMenu�CMenu::LoadMenu�CMenu::LoadMenuIndirect�CMenu::ModifyMenu�CMenu::RemoveMenu�CMenu::SetMenuItemBitmaps�CMenu::TrackPopupMenu�CMetaFileDC::Close�CMetaFileDC::CMetaFileDC�CMetaFileDC::Create�CMetaFileDC::SelectObject�CMetaFileDC::SelectStockObject�CModalDialog::CModalDialog�CModalDialog::CreateIndirect�CModalDialog::DoModal�CModalDialog::OnCancel�CModalDialog::OnOK�CNotSupportedException::CNotSupportedException�CObArray::~CObArray�CObArray::Add�CObArray::CObArray�CObArray::ElementAt�CObArray::FreeExtra�CObArray::GetAt�CObArray::GetSizeCObArray::GetUpperBoundCObArray::InsertAtCObArray::operator []CObArray::RemoveAllCObArray::RemoveAtCObArray::SetAtCObArray::SetAtGrowCObArray::SetSize CObject::~CObject$CObject::AssertValid(CObject::CObject,CObject::Dump0CObject::GetRuntimeClass4CObject::IsKindOf8CObject::IsSerializable<CObject::operator =@CObject::operator deleteDCObject::operator newHCObject::SerializeLCObList::~CObListPCObList::AddHeadTCObList::AddTailXCObList::CObList\CObList::Find`CObList::FindIndexdCObList::GetAthCObList::GetCountlCObList::GetHeadpCObList::GetHeadPositiontCObList::GetNextxCObList::GetPrev|CObList::GetTail�CObList::GetTailPosition�CObList::InsertAfter�CObList::InsertBefore�CObList::IsEmpty�CObList::RemoveAll�x=CObList::RemoveAt�CObList::RemoveHead�CObList::RemoveTail�CObList::SetAt�COleClientDoc::~COleClientDoc�COleClientDoc::COleClientDoc�COleClientDoc::GetNextItem�COleClientDoc::IsOpen�COleClientDoc::NotifyRename�COleClientDoc::NotifyRevert�COleClientDoc::NotifySaved�COleClientDoc::Register�COleClientDoc::Revoke�COleClientItem::~COleClientItem�COleClientItem::Activate�COleClientItem::CanPaste�COleClientItem::CanPasteLink�COleClientItem::CloseLink�COleClientItem::COleClientItem�COleClientItem::CopyToClipboard�COleClientItem::CreateCloneFrom�COleClientItem::CreateFromClipboard�COleClientItem::CreateLinkFromClipboard�COleClientItem::CreateNewObject�COleClientItem::CreateStaticFromClipboard�COleClientItem::Delete�COleClientItem::Draw	COleClientItem::EnumFormats	COleClientItem::FreezeLink	COleClientItem::GetBounds	COleClientItem::GetData	COleClientItem::GetDocument	COleClientItem::GetLastStatus	COleClientItem::GetLinkUpdateOptions	COleClientItem::GetName 	COleClientItem::GetSize$	COleClientItem::GetType(	COleClientItem::InWaitForRelease,	COleClientItem::IsEqual0	COleClientItem::IsOpen4	COleClientItem::OnChange8	COleClientItem::OnRenamed<	COleClientItem::ReconnectLink@	COleClientItem::ReleaseD	COleClientItem::RenameH	COleClientItem::ReportErrorL	COleClientItem::RequestDataP	COleClientItem::SetBoundsT	COleClientItem::SetColorSchemeX	COleClientItem::SetData\	COleClientItem::SetHostNames`	COleClientItem::SetLinkUpdateOptionsd	COleClientItem::SetTargetDeviceh	COleClientItem::UpdateLinkl	COleClientItem::WaitForServerp	COleException::COleExceptiont	COleException::m_statusx	COleServer::~COleServer|	COleServer::BeginRevoke�	COleServer::COleServer�	COleServer::IsOpen�	t::RemoveAll�x#@	COleServer::m_bLaunchEmbedded�	COleServer::OnCreateDoc�	COleServer::OnCreateDocFromTemplate�	COleServer::OnEditDoc�	COleServer::OnExecute�	COleServer::OnExit�	COleServer::OnOpenDoc�	COleServer::OnRelease�	COleServer::Register�	COleServerDoc::~COleServerDoc�	COleServerDoc::COleServerDoc�	COleServerDoc::GetNextItem�	COleServerDoc::IsOpen�	COleServerDoc::m_hPalette�	COleServerDoc::NotifyAllClients�	COleServerDoc::NotifyChanged�	COleServerDoc::NotifyClosed�	COleServerDoc::NotifyRename�	COleServerDoc::NotifyRevert�	COleServerDoc::NotifySaved�	COleServerDoc::OnClose�	COleServerDoc::OnExecute�	COleServerDoc::OnGetDocument�	COleServerDoc::OnGetItem�	COleServerDoc::OnSetColorScheme�	COleServerDoc::OnSetDocDimensions�	COleServerDoc::OnSetHostNames�	COleServerDoc::Register�	COleServerDoc::Revoke�	COleServerItem::~COleServerItem
COleServerItem::COleServerItem
COleServerItem::GetDocument
COleServerItem::GetMetafileData
COleServerItem::GetNativeData
COleServerItem::IsConnected
COleServerItem::m_hPalette
COleServerItem::m_rectBounds
COleServerItem::NotifyChanged 
COleServerItem::NotifyClient$
COleServerItem::OnDoVerb(
COleServerItem::OnDraw,
COleServerItem::OnEnumFormats0
COleServerItem::OnExtraVerb4
COleServerItem::OnGetTextData8
COleServerItem::OnRelease<
COleServerItem::OnSetBounds@
COleServerItem::OnSetColorSchemeD
COleServerItem::OnSetDataH
COleServerItem::OnSetTargetDeviceL
COleServerItem::OnShowP
CollectionsT
Combo Box HandlersX
Combo Box Styles\
COMPAREITEMSTRUCT Structure`
Copyd
Copyrighth
CPaintDC::~CPaintDCl
CPaintDC::CPaintDCp
CPaintDC::m_hWndt
CPaintDC::m_psx
CPalette::AnimatePalette|
CPalette::CPalette�
CPalette::CreatePalette�
CPalette::FromHandle�
sOpen�	t::RemoveAll�xP
CPalette::GetNearestPaletteIndex�
CPalette::GetPaletteEntries�
CPalette::ResizePalette�
CPalette::SetPaletteEntries�
CPen::CPen�
CPen::CreatePen�
CPen::CreatePenIndirect�
CPen::FromHandle�
CPoint::CPoint�
CPoint::Offset�
CPoint::operator!=�
CPoint::operator+�
CPoint::operator+=�
CPoint::operator-�
CPoint::operator-=�
CPoint::operator==�
Create�
CreateIndirect�
CREATESTRUCT Structure�
CRect::BottomRight�
CRect::CopyRect�
CRect::CRect�
CRect::EqualRect�
CRect::Height�
CRect::InflateRect�
CRect::IntersectRect�
CRect::IsRectEmpty�
CRect::IsRectNull�
CRect::OffsetRect�
CRect::operator!=CRect::operator&CRect::operator&=CRect::operator+CRect::operator+=CRect::operator-CRect::operator-=CRect::operator=CRect::operator== CRect::operator|$CRect::operator|=(CRect::operatorLPRECT,CRect::PtInRect0CRect::SetRect4CRect::SetRectEmpty8CRect::Size<CRect::SubtractRect@CRect::TopLeftDCRect::UnionRectHCRect::WidthLCResourceException::CResourceExceptionPCRgn::CombineRgnTCRgn::CopyRgnXCRgn::CreateEllipticRgn\CRgn::CreateEllipticRgnIndirect`CRgn::CreatePolygonRgndCRgn::CreatePolyPolygonRgnhCRgn::CreateRectRgnlCRgn::CreateRectRgnIndirectpCRgn::CreateRoundRectRgntCRgn::CRgnxCRgn::EqualRgn|CRgn::FromHandle�CRgn::GetRgnBox�CRgn::OffsetRgn�CRgn::PtInRegion�CRgn::RectInRegion�CRgn::SetRectRgn�CScrollBar::Create�CScrollBar::CScrollBar�CScrollBar::EnableScrollBar�CScrollBar::GetScrollPos�CScrollBar::GetScrollRange�CScrollBar::SetScrollPos�CScrollBar::SetScrollRange�CScrollBar::ShowScrollBar�CSize::CSize�CSize::operator!=�CSize::operator+�CSize::operator+=�CSize::operator-�eAll�x
N	CSize::operator-=�CSize::operator==�CStatic::Create�CStatic::CStatic�CStatic::GetIcon�CStatic::SetIcon�CStdioFile::~CStdioFile�CStdioFile::CStdioFile�CStdioFile::m_pStream�CStdioFile::ReadString�CStdioFile::WriteString�CString Argument Passing�CString Comparison Operators�CString Exception CleanupCString::~CStringCString::AnsiToOemCString::CollateCString::CompareCString::CompareNoCaseCString::CStringCString::EmptyCString::Find CString::FindOneOf$CString::GetAt(CString::GetBuffer,CString::GetBufferSetLength0CString::GetLength4CString::IsEmpty8CString::Left<CString::LoadString@CString::MakeLowerDCString::MakeReverseHCString::MakeUpperLCString::MidPCString::OemToAnsiTCString::operator +XCString::operator +=\CString::operator =`CString::operator []dCString::operator const char*hCString::operators <<, >>lCString::ReleaseBufferpCString::ReverseFindtCString::RightxCString::SetAt|CString::SpanExcluding�CString::SpanIncluding�CTime Comparison Operators�CTime::CTime�CTime::Format�CTime::FormatGmt�CTime::GetCurrentTime�CTime::GetDay�CTime::GetDayOfWeek�CTime::GetGmtTm�CTime::GetHour�CTime::GetLocalTm�CTime::GetMinute�CTime::GetMonth�CTime::GetSecond�CTime::GetTime�CTime::GetYear�CTime::operator +, -�CTime::operator +=, -=�CTime::operator =�CTime::operators <<, >>�CTimeSpan Comparison Operators�CTimeSpan::CTimeSpan�CTimeSpan::Format�CTimeSpan::GetDays�CTimeSpan::GetHours�CTimeSpan::GetMinutes�CTimeSpan::GetSeconds�CTimeSpan::GetTotalHours�CTimeSpan::GetTotalMinutes�CTimeSpan::GetTotalSeconds�CTimeSpan::operator +=, -=�CTimeSpan::operator =
�xE
CTimeSpan::operators +, -
CTimeSpan::operators <<, >>
Cut
CWinApp::CWinApp
CWinApp::ExitInstance
CWinApp::InitApplication
CWinApp::InitInstance
CWinApp::LoadCursor 
CWinApp::LoadIcon$
CWinApp::LoadOEMCursor(
CWinApp::LoadOEMIcon,
CWinApp::LoadStandardCursor0
CWinApp::LoadStandardIcon4
CWinApp::m_hInstance8
CWinApp::m_hPrevInstance<
CWinApp::m_lpCmdLine@
CWinApp::m_msgCurD
CWinApp::m_nCmdShowH
CWinApp::m_pMainWndL
CWinapp::m_pszAppNameP
CWinApp::OnIdleT
CWinApp::PreTranslateMessageX
CWinApp::Run\
CWindowDC::~CWindowDC`
CWindowDC::CWindowDCd
CWindowDC::m_hWndh
CWnd Alert Functionsl
CWnd Caret Functionsp
CWnd Child Window Attributest
CWnd Clipboard Functionsx
CWnd Clipboard Message Handlers|
CWnd Construction/Destruction�
CWnd Control Message Handlers�
CWnd Coordinate Mapping Functions�
CWnd Data Members�
CWnd Dialog-Box Item Functions�
CWnd General Message Handlers�
CWnd Initialization�
CWnd Initialization Message Handlers�
CWnd Input Message Handlers�
CWnd MDI Message Handlers�
CWnd Menu Functions�
CWnd Message Functions�
CWnd Nonclient-Area Message Handlers�
CWnd Operations�
CWnd Protected Initialization�
CWnd Scrolling Functions�
CWnd System Message Handlers�
CWnd Timer Functions�
CWnd Update/Painting Functions�
CWnd Window Access Functions�
CWnd Window Size and Position�
CWnd Window State Functions�
CWnd Window Text Functions�
CWnd Windows 3.1 Functions�
CWnd::~CWnd�
CWnd::ArrangeIconicWindows�
CWnd::Attach�
CWnd::BeginPaint�
CWnd::BringWindowToTop�
CWnd::ChangeClipboardChain�
CWnd::CheckDlgButton�
CWnd::CheckRadioButton�
CWnd::ChildWindowFromPointCWnd::ClientToScreenCWnd::CloseWindowCWnd::CreateCWnd::CreateCaretCWnd::CreateExr =
�xO
CWnd::CreateGrayCaretCWnd::CreateSolidCaretCWnd::CWnd CWnd::Default$CWnd::DefWindowProc(CWnd::DeleteTempMap,CWnd::DestroyWindow0CWnd::Detach4CWnd::DlgDirList8CWnd::DlgDirListComboBox<CWnd::DlgDirSelect@CWnd::DlgDirSelectComboBoxDCWnd::DrawMenuBarHCWnd::EnableScrollBarLCWnd::EnableWindowPCWnd::EndPaintTCWnd::FindWindowXCWnd::FlashWindow\CWnd::FromHandle`CWnd::GetActiveWindowdCWnd::GetCapturehCWnd::GetCaretPoslCWnd::GetCheckedRadioButtonpCWnd::GetClientRecttCWnd::GetClipboardOwnerxCWnd::GetClipboardViewer|CWnd::GetCurrentMessage�CWnd::GetDC�CWnd::GetDCEx�CWnd::GetDesktopWindow�CWnd::GetDlgCtrlID�CWnd::GetDlgItem�CWnd::GetDlgItemInt�CWnd::GetDlgItemText�CWnd::GetExStyle�CWnd::GetFocus�CWnd::GetFont�CWnd::GetLastActivePopup�CWnd::GetMenu�CWnd::GetNextDlgGroupItem�CWnd::GetNextDlgTabItem�CWnd::GetNextWindow�CWnd::GetOpenClipboardWindow�CWnd::GetParent�CWnd::GetSafeHwnd�CWnd::GetScrollPos�CWnd::GetScrollRange�CWnd::GetStyle�CWnd::GetSuperWndProcAddr�CWnd::GetSysModalWindow�CWnd::GetSystemMenu�CWnd::GetTopWindow�CWnd::GetUpdateRect�CWnd::GetUpdateRgn�CWnd::GetWindow�CWnd::GetWindowDC�CWnd::GetWindowPlacement�CWnd::GetWindowRect�CWnd::GetWindowTextCWnd::GetWindowTextLengthCWnd::HideCaretCWnd::HiliteMenuItemCWnd::InvalidateCWnd::InvalidateRectCWnd::InvalidateRgnCWnd::IsChildCWnd::IsDlgButtonChecked CWnd::IsIconic$CWnd::IsWindowEnabled(CWnd::IsWindowVisible,CWnd::IsZoomed0CWnd::KillTimer4CWnd::LockWindowUpdate8CWnd::m_hWnd<CWnd::MapWindowPoints@CWnd::MessageBoxDCWnd::MoveWindowHCWnd::OnActivateLCWnd::OnActivateAppPr =
�xOCWnd::OnAskCbFormatNameTCWnd::OnCancelModeXCWnd::OnChangeCbChain\CWnd::OnChar`CWnd::OnCharToItemdCWnd::OnChildActivatehCWnd::OnCloselCWnd::OnCommandpCWnd::OnCompactingtCWnd::OnCompareItemxCWnd::OnCreate|CWnd::OnCtlColor�CWnd::OnDeadChar�CWnd::OnDeleteItem�CWnd::OnDestroy�CWnd::OnDestroyClipboard�CWnd::OnDevModeChange�CWnd::OnDrawClipboard�CWnd::OnDrawItem�CWnd::OnDropFiles�CWnd::OnEnable�CWnd::OnEndSession�CWnd::OnEnterIdle�CWnd::OnEraseBkgnd�CWnd::OnFontChange�CWnd::OnGetDlgCode�CWnd::OnGetMinMaxInfo�CWnd::OnHScroll�CWnd::OnHScrollClipboard�CWnd::OnIconEraseBkgnd�CWnd::OnInitMenu�CWnd::OnInitMenuPopup�CWnd::OnKeyDown�CWnd::OnKeyUp�CWnd::OnKillFocus�CWnd::OnLButtonDblClk�CWnd::OnLButtonDown�CWnd::OnLButtonUp�CWnd::OnMButtonDblClk�CWnd::OnMButtonDown�CWnd::OnMButtonUp�CWnd::OnMDIActivate�CWnd::OnMeasureItem�CWnd::OnMenuCharCWnd::OnMenuSelectCWnd::OnMouseActivateCWnd::OnMouseMoveCWnd::OnMoveCWnd::OnNcActivateCWnd::OnNcCalcSizeCWnd::OnNcCreateCWnd::OnNcDestroy CWnd::OnNcHitTest$CWnd::OnNcLButtonDblClk(CWnd::OnNcLButtonDown,CWnd::OnNcLButtonUp0CWnd::OnNcMButtonDblClk4CWnd::OnNcMButtonDown8CWnd::OnNcMButtonUp<CWnd::OnNcMouseMove@CWnd::OnNcPaintDCWnd::OnNcRButtonDblClkHCWnd::OnNcRButtonDownLCWnd::OnNcRButtonUpPCWnd::OnPaintTCWnd::OnPaintClipboardXCWnd::OnPaintIcon\CWnd::OnPaletteChanged`CWnd::OnPaletteIsChangingdCWnd::OnParentNotifyhCWnd::OnQueryDragIconlCWnd::OnQueryEndSessionpCWnd::OnQueryNewPalettetCWnd::OnQueryOpenxCWnd::OnRButtonDblClk|CWnd::OnRButtonDown�CWnd::OnRButtonUp�CWnd::OnRenderAllFormats�CWnd::OnRenderFormat�
�xQ
CWnd::OnSetCursor�CWnd::OnSetFocus�CWnd::OnShowWindow�CWnd::OnSize�CWnd::OnSizeClipboard�CWnd::OnSpoolerStatus�CWnd::OnSysChar�CWnd::OnSysColorChange�CWnd::OnSysCommand�CWnd::OnSysDeadChar�CWnd::OnSysKeyDown�CWnd::OnSysKeyUp�CWnd::OnTimeChange�CWnd::OnTimer�CWnd::OnVKeyToItem�CWnd::OnVScroll�CWnd::OnVScrollClipboard�CWnd::OnWindowPosChanged�CWnd::OnWindowPosChanging�CWnd::OnWinIniChange�CWnd::OpenClipboard�CWnd::OpenIcon�CWnd::PostMessage�CWnd::PostNcDestroy�CWnd::PreTranslateMessage�CWnd::RedrawWindow�CWnd::ReleaseDC�CWnd::ScreenToClient�CWnd::ScrollWindowCWnd::ScrollWindowExCWnd::SendDlgItemMessageCWnd::SendMessageCWnd::SetActiveWindowCWnd::SetCaptureCWnd::SetCaretPosCWnd::SetClipboardViewerCWnd::SetDlgItemInt CWnd::SetDlgItemText$CWnd::SetFocus(CWnd::SetFont,CWnd::SetMenu0CWnd::SetParent4CWnd::SetRedraw8CWnd::SetScrollPos<CWnd::SetScrollRange@CWnd::SetSysModalWindowDCWnd::SetTimerHCWnd::SetWindowPlacementLCWnd::SetWindowPosPCWnd::SetWindowTextTCWnd::ShowCaretXCWnd::ShowOwnedPopups\CWnd::ShowScrollBar`CWnd::ShowWindowdCWnd::SubclassWindowhCWnd::UpdateWindowlCWnd::ValidateRectpCWnd::ValidateRgntCWnd::WindowFromPointxCWnd::WindowProc|CWnd::wndBottom�CWnd::wndTop�DEBUG_NEW Macro�DECLARE_DYNAMIC Macro�DECLARE_MESSAGE_MAP Macro�DECLARE_SERIAL Macro�DELETEITEMSTRUCT Structure�DeleteString�DeleteTempMap�Detach�Diagnostic Services�Dir�DRAWITEMSTRUCT Structure�Edit Control Handlers�Edit Styles�EnableScrollBar�END_CATCH Macro�END_MESSAGE_MAP Macro�Exception Macros�Exception Processing�Exception Throwing Functions�
�x`Exceptions�File Classes�Find�FindString�FindStringExact�Flush�Format�FromHandle�GDI�General Diagnostic Functions�General Diagnostic Macros�Generic Control HandlerGetAtGetChildFrameGetCountGetCurSelGetDocumentGetItemDataGetItemHeightGetLength GetNextItem$GetParentFrame(GetScrollPos,GetScrollRange0GetSel4Global Category Table8Global Functions and Macros<How To Use the Message Map Cross-Reference@IMPLEMENT_DYNAMIC MacroDIMPLEMENT_SERIAL MacroHInsertStringLIsEmptyPIsOpenTLimitTextXList Box Handlers\List Box Styles`m_causedm_hPalettehm_hWndlMacros and Global FunctionspMDIActivatetMDIMaximizexMDIRestore|MEASUREITEMSTRUCT Structure�Message Map Cross-Reference�Message Map Function Categories�Microsoft Foundation Class Library Reference�Miscellaneous Support Classes�Mouse Hit-Test enums�NotifyChanged�NotifyRename�NotifyRevert�NotifySaved�Object Diagnostic Functions�Object Input/Output�OLE Class List�OLE Global Functions�OnExecute�OnRelease�OnSetColorScheme�Other Windows Classes�PAINTSTRUCT Structure�Paste�POINT Structure�PreTranslateMessage�Read�RECT Structure�Register�RemoveAll�RemoveAt�ResetContent�Revoke�RUNTIME_CLASS Macro�Scroll Bar Styles�SelectObject�SelectStockObjectSelectStringSetAtSetCurSelSetItemDataSetItemHeightSetRectSetScrollPosSetScrollRange SetSel$SetTabStops(ShowScrollBar,Static Styles0Termination Functions4THROW Macro8THROW_LAST Macro<TRACE Macro@TRY MacroDUser Button HandlersHUser-Defined HandlersLVERIFY MacroPx/
��Window ClassesTWindow StylesXWM_ Message Handlers: Functions A - C\WM_ Message Handlers: Functions D - E`WM_ Message Handlers: Functions F - KdWM_ Message Handlers: Functions L - MhWM_ Message Handlers: Functions N - OlWM_ Message Handlers: Functions P - RpWM_ Message Handlers: Functions T - ZtWM_ Message HandlersFunctions SxWM_ Messages Index|WM_COMMAND Message Handler�Write�4Global Category Table8Global Functions and Macros<How To Use the Message Map Cross-Reference@IMPLEMENT_DYNAMIC MacroDIMPLEMENT_SERIAL MacroHInsertStringLIsEmptyPIsOpenTLimitTextXList Box Handlers\List Box Styles`m_causedm_hPalettehm_hWndlMacros and Global FunctionspMDIActivatetMDIMaximizexMDIRestore|MEASUREITEMSTRUCT Structure�Message Map Cross-Reference�Message Map Function Categories�Microsoft Foundation Class Library Reference�Miscellaneous Support Classes�Mouse Hit-Test enums�NotifyChanged�NotifyRename�NotifyRevert�NotifySaved�Object Diagnostic Functions�Object Input/Output�OLE Class List�OLE Global Functions�OnExecute�OnRelease�OnSetColorScheme�Other Windows Classes�PAINTSTRUCT Structure�Paste�POINT Structure�PreTranslateMessage�Read�RECT Structure�Register�RemoveAll�RemoveAt�ResetContent�Revoke�RUNTIME_CLASS Macro�Scroll Bar Styles�SelectObject�SelectStockObjectSelectStringSetAtSetCurSelSetItemDataSetItemHeightSetRectSetScrollPosSetScrollRange SetSel$SetTabStops(ShowScrollBar,Static Styles0Termination Functions4THROW Macro8THROW_LAST Macro<TRACE Macro@TRY MacroDUser Button HandlersHUser-Defined HandlersLVERIFY MacroPxCButton::SetCheckCDC::GetPolyFillModeCDumpContext::CDumpContextCGdiObject::DeleteTempMapCListBox::FindStringExactCMenu::~CMenuCObList::RemoveAtCOleServer::m_bLaunchEmbeddedCPalette::GetNearestPaletteIndex	CSize::operator-=
CTimeSpan::operators +, -CWnd::CreateGrayCaretCWnd::OnAskCbFormatName
CWnd::OnSetCursorExceptionsWindow Classes`�G�''�~g2[g�Zgbzg�g^�g��G�m'�n'
n'�m'�5'
��5'�g�)G��GZG�(G��G}=�-G`��r���!�֛G��Gz�G
gzR'���2�[ۇۇ�܇h6�
5��4��4�=��������a�����J�GN���p���5��5���g��gJ�g�'�'"�s���gQ��Mg$Mg>�G�GT�G��GxM���l������p�@ˇx~��ƇЇGև�k�#f��h��j���`g6	gRgtgBKg��g�k��g���D��"�*���,�\������0�((�-�+*�,B-j,�/�2v3��Gl�GJg�g�Fg�g���*�:��$�G�A�p�G��G��G�G�G~g�g��gC���?P@"A�B�]>JxKL�LM�N*Y\������N�҅`��r���|����ȇ9��X|�%�<x�~p0��G"���{�ܞG
�G�G��GG�G�G�\'��'����������	����D��u'b�e'���g�K���gh�g<s'��'�<'�|'�{'�GG<GG�B'��j�'��'T��,r����Z��Y���,�j��K��J���G����������V-��,�40��0�tI�������|�̒���'H��x'@ׇ྇�������G
�gB<��~G\�G��G��P������k��q��r�6���}��G�Gh�'����'�'�'8
Gv
G���LgLLg��gV\g4�g�Eg*G�g�Z��������L��]�w���t�0e�p��r�b4��6��6�7������"#"p�GY�G��8��	����W��zGfG�oGJpG�{G��G�Ng��GȋG&�G�GЬGz�G�Gv�G�Gr'NG.'��-'	GN�gt�g��g4�g(�gȶg��GR�G��G��G��G�G��G�a'�a'd�g��gʱg>�g��g�gR�g�g�-��p���������(��XZNV&�X(���`h��e�/l��' �����gg�g��"�|���P���	��
��	��>��C�"aG,'l��' ������6G��80GJ5GB6G8G�'���:'p['�Z'��'��'��'��'�'�',�'mg�l�7Gv�v0G�5G�6G^7G�+�*�^������Ͻ��؇?��v�w�޿�/�&�;)Lz-t"��h�!����U��Button Styles�Combo Box Styles�Edit Stylese�List Box StylesCScroll Bar Styles��Static StylesWindow Styles3�POINT Structure8�RECT Structure��COMPAREITEMSTRUCT Structure(�PAINTSTRUCT Structure�MEASUREITEMSTRUCT Structure�DRAWITEMSTRUCT StructureCREATESTRUCT StructurenDELETEITEMSTRUCT Structure3	Clipboard Formats��Mouse Hit-Test enums��class CBitmapUCBitmap::CBitmap�CBitmap::CreateBitmapa�CBitmap::CreateBitmapIndirectq�CBitmap::CreateCompatibleBitmap�CBitmap::CreateDiscardableBitmap�CBitmap::FromHandleO�CBitmap::GetBitmapBitsL�CBitmap::GetBitmapDimension��CBitmap::LoadBitmapPCBitmap::LoadOEMBitmap7�CBitmap::SetBitmapBits�CBitmap::SetBitmapDimensionQ�class CBrushxCBrush::CBrush6
CBrush::CreateBrushIndirect��CBrush::CreateDIBPatternBrush�	CBrush::CreateHatchBrush�	CBrush::CreatePatternBrushP�	CBrush::CreateSolidBrush��	CBrush::FromHandle@
class CButton�

CButton::CButton`�
CButton::Create�
CButton::GetButtonStyleCButton::GetCheck�CButton::GetState�CButton::SetButtonStyle�CButton::SetCheckm�CButton::SetState#�class CClientDCk�CClientDC::CClientDC?CClientDC::~CClientDC�CClientDC::m_hWnd:class CComboBoxP
CComboBox::AddString�
CComboBox::CComboBox0
CComboBox::Clear�
CComboBox::Copy�
CComboBox::Create&�
CComboBox::Cut�CComboBox::DeleteString�CComboBox::Dir�CComboBox::FindString��CComboBox::GetCount��CComboBox::GetCurSel�CComboBox::GetEditSel�CComboBox::GetItemDataCComboBox::GetLBTextDCComboBox::GetLBTextLenCComboBox::InsertString(�CComboBox::LimitText�CComboBox::Paste+�CComboBox::ResetContentCComboBox::SelectStringCComboBox::SetCurSelJCComboBox::SetEditSel|�CComboBox::SetItemDataY�CComboBox::ShowDropDown��class CDC�CDC::AbortDocCDC::Arc��CDC::BitBltCDC::CDCyCDC::~CDCY	CDC::Chord�CDC::CreateCompatibleDC�CDC::CreateDC<a}_�CDC::CreateIC��CDC::DeleteDCňCDC::DPtoLPaCDC::DrawFocusRectHCDC::DrawIcon�CDC::DrawText�CDC::Ellipse.CDC::EndDoc�CDC::EndPage�CDC::EnumObjects�CDC::Escape��CDC::ExcludeClipRect��CDC::ExcludeUpdateRgnCDC::ExtFloodFillsCDC::ExtTextOuty�CDC::FillRecty�CDC::FillRgn�CDC::FloodFillnCDC::FrameRect�CDC::FrameRgn��CDC::GetAspectRatioFilterp�CDC::GetBkColor��CDC::GetBkMode�CDC::GetBrushOrg�CDC::GetCharWidthyCDC::GetClipBoxp�CDC::GetCurrentPositionv�CDC::GetDCOrgi�CDC::GetDeviceCaps�CDC::GetMapMode�CDC::GetNearestColor��CDC::GetPixel	CDC::GetPolyFillMode/CDC::GetROP2�CDC::GetStretchBltModeV�CDC::GetTabbedTextExtent�CDC::GetTextAlign�CDC::GetTextCharacterExtrabCDC::GetTextColorCDC::GetTextExtent��CDC::GetTextFace�CDC::GetTextMetrics߄CDC::GetViewportExt߅CDC::GetViewportOrg�CDC::GetWindowExt�CDC::GetWindowOrg!CDC::GrayStringP�CDC::IntersectClipRectC CDC::InvertRect� CDC::InvertRgn CDC::LineToa� CDC::LPtoDP:� CDC::MoveTo�� CDC::OffsetClipRgn�!CDC::OffsetViewportOrgS!CDC::OffsetWindowOrg�!CDC::PaintRgn׀!CDC::PatBltÇ!CDC::Pie�"CDC::PlayMetaFile!"CDC::Polygon��"CDC::Polyline~�"CDC::PolyPolygonl#CDC::PtVisible�#CDC::RealizePalette�#CDC::Rectangle��#CDC::RectVisible�#CDC::RestoreDCdž#CDC::RoundRect$CDC::SaveDC�$CDC::ScaleViewportExt��$CDC::ScaleWindowExtX�$CDC::ScrollDC%CDC::SelectClipRgn�%CDC::SelectObject	�%CDC::SelectPalette�&CDC::SelectStockObject&CDC::SetAbortProc'CDC::SetBkColorG'CDC::SetBkModeJ'CDC::SetBrushOrgۀ'CDC::SetMapModef�'CDC::SetMapperFlags�(CDC::SetPixelR(CDC::SetPolyFillMode��(CDC::SetROP2��(CDC::SetStretchBltModeC)CDC::SetTextAlign��)CDC::SetTextCharacterExtraq�)CDC::SetTextColorW�)CDC::SetTextJustification�*CDC::SetViewportExt��*CDC::SetViewportOrgB�*CDC::SetWindowExt~+CDC::SetWindowOrgDC::CreateDC<a}Y�+CDC::StartDoc�+CDC::StartPage �+CDC::StretchBlt,CDC::TabbedTextOutV�,CDC::TextOutJ�,CDC::UpdateColorsG-class CDialog.CDialog::CDialog�.CDialog::Createx�.CDialog::CreateIndirect͉.CDialog::EndDialog�/CDialog::GetDefIDp/CDialog::GotoDlgCtrl�/CDialog::IsDialogMessage��/CDialog::MapDialogRect߉/CDialog::NextDlgCtrl�0CDialog::OnInitDialog�0CDialog::OnSetFont@	0CDialog::PrevDlgCtrl�0CDialog::SetDefID�0class CEdit�1CEdit::CanUndo�1CEdit::CEditj�1CEdit::Clear$�1CEdit::Copy�1CEdit::Create92CEdit::Cut2CEdit::EmptyUndoBuffer2CEdit::FmtLines��2CEdit::GetHandle�2CEdit::GetLine��2CEdit::GetLineCount�3CEdit::GetModify�3CEdit::GetRect�3CEdit::GetSel]3CEdit::LimitText'�3CEdit::LineFromChar��3CEdit::LineIndex��3CEdit::LineLength�4CEdit::LineScroll#4CEdit::PasteE4CEdit::ReplaceSel�4CEdit::SetHandlea�4CEdit::SetModify��4CEdit::SetPasswordCharx5CEdit::SetRect"	5CEdit::SetRectNP��5CEdit::SetSel��5CEdit::SetTabStops�6CEdit::Undo�6class CFont�6CFont::CFont�6CFont::CreateFont�7CFont::CreateFontIndirect�8CFont::FromHandle�8class CFrameWnd��8CFrameWnd::CFrameWnd{�8CFrameWnd::~CFrameWnd��8CFrameWnd::Create�9CFrameWnd::LoadAccelTableg9CFrameWnd::m_hAccelTable�9CFrameWnd::rectDefault�9class CGdiObject|�9CGdiObject::AttachӇ9CGdiObject::CGdiObjectH:CGdiObject::~CGdiObject:CGdiObject::CreateStockObject�:CGdiObject::DeleteObject��:CGdiObject::DeleteTempMap��:CGdiObject::Detachф:CGdiObject::FromHandle�:CGdiObject::GetObject�;CGdiObject::GetSafeHandleD;CGdiObject::UnrealizeObjecth�;CGdiObject::m_hObject��;class CListBox
<CListBox::AddString>�<CListBox::CListBoxN�<CListBox::Create�=CListBox::DeleteStringf=CListBox::DirR=CListBox::FindString��=CListBox::GetCount?�=CListBox::GetCurSel
�=CListBox::GetHorizontalExtentK>CListBox::GetItemDatan>CListBox::GetItemRect`>CListBox::GetSel+>CListBox::GetSelCountC<a}O6�>CListBox::GetSelItems‚>CListBox::GetText8�>CListBox::GetTextLen?CListBox::GetTopIndex�?CListBox::InsertString�?CListBox::ResetContent'?CListBox::SelectString�?CListBox::SelItemRange��?CListBox::SetColumnWidth�?CListBox::SetCurSelV@CListBox::SetHorizontalExtent@CListBox::SetItemData�@CListBox::SetSel�@CListBox::SetTabStops.�@CListBox::SetTopIndex��@class CMDIChildWnd�ACMDIChildWnd::CMDIChildWnd�ACMDIChildWnd::Create��ACMDIChildWnd::GetParentFrame��ACMDIChildWnd::MDIActivate
�ACMDIChildWnd::MDIDestroy�ACMDIChildWnd::MDIMaximizeІACMDIChildWnd::MDIRestore�BCMDIChildWnd::m_pMDIFrameWndOBclass CMDIFrameWnd�	BCMDIFrameWnd::CMDIFrameWnd�BCMDIFrameWnd::Createf�BCMDIFrameWnd::CreateClient��BCMDIFrameWnd::MDIActivate�CCMDIFrameWnd::MDICascade�CCMDIFrameWnd::MDIGetActive�CCMDIFrameWnd::MDIIconArrangeP�CCMDIFrameWnd::MDIMaximize)�CCMDIFrameWnd::MDINext�CCMDIFrameWnd::MDIRestore�CCMDIFrameWnd::MDISetMenu�DCMDIFrameWnd::MDITile
Dclass CMenu�DCMenu::AppendMenu-ECMenu::Attach��ECMenu::CheckMenuItem,�ECMenu::CMenu�FCMenu::~CMenu�FCMenu::CreateMenu�FCMenu::CreatePopupMenu�FCMenu::DeleteMenu&�FCMenu::DestroyMenu��FCMenu::Detach�FCMenu::EnableMenuItem�GCMenu::GetMenuItemCountGCMenu::GetMenuItemID�GCMenu::GetMenuState{�GCMenu::GetMenuString,HCMenu::GetSubMenu�HCMenu::InsertMenuICMenu::LoadMenuICMenu::LoadMenuIndirect�ICMenu::ModifyMenu֊ICMenu::RemoveMenu�JCMenu::SetMenuItemBitmaps�JCMenu::TrackPopupMenu��Jclass CModalDialog݂KCModalDialog::CModalDialog�KCModalDialog::CreateIndirect�LCModalDialog::DoModal�LCModalDialog::OnCancel�LCModalDialog::OnOK�Lclass CPaintDC��LCPaintDC::CPaintDC;�LCPaintDC::~CPaintDC
�LCPaintDC::m_hWnd��LCPaintDC::m_psMclass CPaletteIMCPalette::AnimatePalette��MCPalette::CreatePalette[�MCPalette::FromHandleR�MCPalette::GetNearestPaletteIndex*NCPalette::GetPaletteEntriesNCPalette::CPalette}Z�NCPalette::ResizePalette�NCPalette::SetPaletteEntries)�Nclass CPen�NCPen::CreatePen�OCPen::CreatePenIndirectyOCPen::CPen��OCPen::FromHandle��Oclass CPoint5�OCPoint::CPoint�PCPoint::Offset�PCPoint::operator==�PCPoint::operator!=�PCPoint::operator+=�PCPoint::operator-=��PCPoint::operator+m�PCPoint::operator-ĂPclass CRect�QCRect::BottomRight�QCRect::CopyRectp�QCRect::CRect��QCRect::EqualRect�QCRect::Height�QCRect::InflateRectsRCRect::IntersectRect�RCRect::IsRectEmptyXRCRect::IsRectNull�RCRect::OffsetRect΂RCRect::PtInRect��RCRect::SetRecty�RCRect::SetRectEmpty�RCRect::Size�SCRect::TopLeft�SCRect::UnionRect�SCRect::WidthnSCRect::operatorLPRECT�SCRect::operator=�SCRect::operator==��SCRect::operator!=�SCRect::operator+=B�SCRect::operator-=��SCRect::operator&=�TCRect::operator|=�TCRect::operator+YTCRect::operator-.TCRect::operator&�TCRect::operator|��Tclass CRgn�UCRgn::CombineRgn�UCRgn::CopyRgn��UCRgn::CreateEllipticRgn��UCRgn::CreateEllipticRgnIndirect��UCRgn::CreatePolygonRgn�VCRgn::CreatePolyPolygonRgn��VCRgn::CreateRectRgnK�VCRgn::CreateRectRgnIndirect�WCRgn::CreateRoundRectRgnIWCRgn::EqualRgn�WCRgn::FromHandlel�WCRgn::GetRgnBox˂WCRgn::OffsetRgnU�WCRgn::PtInRegion�XCRgn::RectInRegionWXCRgn::CRgn=XCRgn::SetRectRgn��Xclass CScrollBarx�XCScrollBar::CScrollBarYCScrollBar::CreateYCScrollBar::GetScrollPos.YCScrollBar::GetScrollRange�YCScrollBar::SetScrollPosۃYCScrollBar::SetScrollRange��Yclass CSize�ZCSize::CSize�ZCSize::operator==�ZCSize::operator!=�ZCSize::operator+=��ZCSize::operator-=M�ZCSize::operator+�ZCSize::operator-ՂZclass CStaticf[CStatic::CStatic�[CStatic::CreateC[class CWinApp�\CWinApp::ExitInstance\CWinApp::InitApplication�\CWinApp::InitInstance,�\CWinApp::LoadCursore�\CWinApp::LoadIcong�\CWinApp::LoadOEMCursor�]CWinApp::LoadOEMIcontriesNCPalette::CPalette}
L]CWinApp::LoadStandardCursor]CWinApp::LoadStandardIcon��]CWinApp::OnIdle݈]CWinApp::PreTranslateMessage	^CWinApp::Run�^CWinApp::CWinApp�^CWinApp::m_hInstance�^CWinApp::m_hPrevInstance�^CWinApp::m_lpCmdLineЀ^CWinApp::m_msgCuri�^CWinApp::m_nCmdShow��^CWinApp::m_pMainWnd)�^CWinapp::m_pszAppName�^class CWindowDC�^CWindowDC::CWindowDC�_CWindowDC::~CWindowDC�_CWindowDC::m_hWnd*_class CMetaFileDC.�_CMetaFileDC::Close��_CMetaFileDC::CMetaFileDC�_CMetaFileDC::Create`CMetaFileDC::SelectObject�`CMetaFileDC::SelectStockObjectF`class CWndc�`CWnd Data Members��`CWnd Construction/Destruction�aCWnd Initialization�aCWnd Message Functions�aCWnd Window Text FunctionsaCWnd Menu Functions�aCWnd Child Window AttributesaCWnd Window Size and Position��aCWnd Coordinate Mapping Functions��aCWnd Update/Painting Functions��aCWnd Timer FunctionsbCWnd Window State Functions�bCWnd Dialog-Box Item Functions)	bCWnd Scrolling Functions4�bCWnd Window Access Functions��bCWnd Alert FunctionsN�bCWnd Clipboard Functions��bCWnd Caret Functions�bCWnd General Message HandlerscCWnd Nonclient-Area Message Handlers�cCWnd System Message HandlersdCWnd Input Message HandlersEdCWnd Initialization Message Handlers;dCWnd Clipboard Message HandlersI�dCWnd Control Message Handlers��dCWnd MDI Message HandlersI�dCWnd Windows 3.1 Functions�eCWnd Protected Initialization<eCWnd Operations�eCWnd::ArrangeIconicWindows��eCWnd::Attach�eCWnd::BeginPaintz�eCWnd::BringWindowToTopfCWnd::ChangeClipboardChain�fCWnd::CheckDlgButton�fCWnd::CheckRadioButton�fCWnd::ChildWindowFromPoint�fCWnd::ClientToScreen�fCWnd::CloseWindowu�fCWnd::Create�gCWnd::CreateCaret�gCWnd::CreateExF�gCWnd::CreateGrayCaretXhCWnd::CreateSolidCaretJ
hCWnd::CWndҀhCWnd::~CWndw�hCWnd::Defaultm�hCWnd::DefWindowProc�hCWnd::DeleteTempMapiCWnd::DestroyWindow�iCWnd::Detach�iCWnd::DlgDirListe::CPalette}
W��iCWnd::DlgDirListComboBox	jCWnd::DlgDirSelectS�jCWnd::DlgDirSelectComboBox��jCWnd::DrawMenuBarh�jCWnd::EnableWindow\kCWnd::EndPaint�kCWnd::FindWindowڀkCWnd::FlashWindow��kCWnd::FromHandleU�kCWnd::GetActiveWindow�lCWnd::GetCapture�lCWnd::GetCaretPos]lCWnd::GetCheckedRadioButtonZlCWnd::GetClientRect�lCWnd::GetClipboardOwner��lCWnd::GetClipboardViewerU�lCWnd::GetCurrentMessage1�lCWnd::GetDCEmCWnd::GetDesktopWindow�mCWnd::GetDlgCtrlID�mCWnd::GetDlgItem��mCWnd::GetDlgItemInt�mCWnd::GetDlgItemTextnCWnd::GetFocus�nCWnd::GetFont�nCWnd::GetLastActivePopup�nCWnd::GetMenu�nCWnd::GetNextDlgGroupItem߄nCWnd::GetNextDlgTabItemH�nCWnd::GetNextWindowoCWnd::GetParentToCWnd::GetSafeHwnd�oCWnd::GetScrollPos�oCWnd::GetScrollRange��oCWnd::GetStyleg�oCWnd::GetSuperWndProcAddr�oCWnd::GetSysModalWindow��oCWnd::GetSystemMenupCWnd::GetTopWindow�pCWnd::GetUpdateRect�pCWnd::GetUpdateRgn.�pCWnd::GetWindowcqCWnd::GetWindowDC�qCWnd::GetWindowRect\�qCWnd::GetWindowText�qCWnd::GetWindowTextLength8�qCWnd::HideCaret%�qCWnd::HiliteMenuItemvrCWnd::Invalidate�rCWnd::InvalidateRect��rCWnd::InvalidateRgnsCWnd::IsChildXsCWnd::IsDlgButtonChecked�sCWnd::IsIconic�sCWnd::IsWindowEnabledsCWnd::IsWindowVisibleՁsCWnd::IsZoomed˂sCWnd::KillTimer�sCWnd::MessageBox9
tCWnd::MoveWindows�tCWnd::OnActivate��tCWnd::OnActivateApp�uCWnd::OnAskCbFormatNameluCWnd::OnCancelMode�uCWnd::OnChangeCbChain
�uCWnd::OnCharvCWnd::OnCharToItem�vCWnd::OnChildActivate�vCWnd::OnClose�vCWnd::OnCommand
�vCWnd::OnCompacting�vCWnd::OnCompareItem�wCWnd::OnCreate
wCWnd::OnCtlColor/�wCWnd::OnDeadChar�xCWnd::OnDeleteItem*xCWnd::OnDestroy��xCWnd::OnDestroyClipboardz�xCWnd::OnDevModeChange��xCWnd::OnDrawClipboardyCWnd::OnDrawItemZyCWnd::OnEnablekyCWnd::OnEndSession2�yCWnd::OnEnterIdle��yCWnd::OnEraseBkgnd�zCWnd::OnFontChangeZzCWnd::OnGetDlgCodeCPalette}V2�zCWnd::OnGetMinMaxInfo��zCWnd::OnHScrollw{CWnd::OnHScrollClipboard�{CWnd::OnIconEraseBkgndh�{CWnd::OnInitMenu/�{CWnd::OnInitMenuPopupj�{CWnd::OnKeyDownZ|CWnd::OnKeyUp��|CWnd::OnKillFocus�|CWnd::OnLButtonDblClk}CWnd::OnLButtonDown�}CWnd::OnLButtonUpY�}CWnd::OnMButtonDblClk+�}CWnd::OnMButtonDownY~CWnd::OnMButtonUp%~CWnd::OnMDIActivate7�~CWnd::OnMeasureItem?�~CWnd::OnMenuChar�CWnd::OnMenuSelect�CWnd::OnMouseActivate��CWnd::OnMouseMove�CWnd::OnMove��CWnd::OnNcActivate$�CWnd::OnNcCalcSize�CWnd::OnNcCreateʀ�CWnd::OnNcDestroy���CWnd::OnNcHitTest�CWnd::OnNcLButtonDblClk^�CWnd::OnNcLButtonDown��CWnd::OnNcLButtonUp���CWnd::OnNcMButtonDblClk��CWnd::OnNcMButtonDown6��CWnd::OnNcMButtonUp��CWnd::OnNcMouseMove��CWnd::OnNcPaint��CWnd::OnNcRButtonDblClk���CWnd::OnNcRButtonDownᄂCWnd::OnNcRButtonUp��CWnd::OnPaintS�CWnd::OnPaintClipboard��CWnd::OnPaintIcont�CWnd::OnPaletteChangedJ��CWnd::OnParentNotify"��CWnd::OnQueryDragIconp�CWnd::OnQueryEndSession��CWnd::OnQueryNewPalette+��CWnd::OnQueryOpen���CWnd::OnRButtonDblClk���CWnd::OnRButtonDownD�CWnd::OnRButtonUp��CWnd::OnRenderAllFormats���CWnd::OnRenderFormatσ�CWnd::OnSetCursorH�CWnd::OnSetFocus��CWnd::OnShowWindow��CWnd::OnSizeH��CWnd::OnSizeClipboard���CWnd::OnSpoolerStatuso�CWnd::OnSysChar�	�CWnd::OnSysColorChangeV��CWnd::OnSysCommandn��CWnd::OnSysDeadChar�CWnd::OnSysKeyDown���CWnd::OnSysKeyUp�CWnd::OnTimeChangeo�CWnd::OnTimerO�CWnd::OnVKeyToItemq��CWnd::OnVScroll�CWnd::OnVScrollClipboardR�CWnd::OnWinIniChange9��CWnd::OpenClipboardH��CWnd::OpenIconj��CWnd::PostMessage���CWnd::PreTranslateMessage;�CWnd::ReleaseDCT�CWnd::ScreenToClient��CWnd::ScrollWindow���CWnd::SendDlgItemMessage��CWnd::SendMessage��CWnd::SetActiveWindow��CWnd::SetCapture���CWnd::SetCaretPos݃�CWnd::SetClipboardViewer���CWnd::SetDlgItemInt��CWnd::SetDlgItemText��CWnd::SetFocus}S	��CWnd::SetFont��CWnd::SetMenu
��CWnd::SetParentă�CWnd::SetRedraw��CWnd::SetScrollPos��CWnd::SetScrollRangev	�CWnd::SetSysModalWindow:��CWnd::SetTimer���CWnd::SetWindowPos%�CWnd::SetWindowText�CWnd::ShowCaret���CWnd::ShowOwnedPopups8��CWnd::ShowScrollBar ��CWnd::ShowWindow��CWnd::UpdateWindow�CWnd::ValidateRect[�CWnd::ValidateRgne��CWnd::WindowFromPoint���CWnd::WindowProc��CWnd::m_hWndᆐCWnd::wndBottom�CWnd::wndTop��CWnd::EnableScrollBar�CWnd::GetDCEx⇑CWnd::GetWindowPlacementz�CWnd::LockWindowUpdate��CWnd::MapWindowPoints��CWnd::OnPaletteIsChangingn��CWnd::OnWindowPosChanged���CWnd::OnWindowPosChanging�CWnd::PostNcDestroy:�CWnd::RedrawWindow烓CWnd::ScrollWindowEx&�CWnd::SetWindowPlacement|��CWnd::SubclassWindow���CWnd::OnDropFilese��CWnd::GetOpenClipboardWindow�CWnd::GetExStyle��CDC::GetBoundsRect5�CDC::GetCharABCWidths���CDC::GetFontData��CDC::GetGlyphOutline7��CDC::GetKerningPairs3��CDC::GetOutlineTextMetrics��CDC::QueryAbort��CDC::SetBoundsRecte�CListBox::FindStringExactτ�CListBox::GetCaretIndex���CListBox::GetItemHeight?�CListBox::SetCaretIndex�CListBox::SetItemHeight?�CEdit::GetFirstVisibleLine��CEdit::GetPasswordCharL��CEdit::SetReadOnlyᄘCRect::SubtractRect��CComboBox::FindStringExactB�CComboBox::GetDroppedControlRect��CComboBox::GetDroppedState��CComboBox::GetExtendedUICComboBox::GetItemHeight*��CComboBox::SetExtendedUI��CComboBox::SetItemHeight��CStatic::GetIcon��CStatic::SetIcon���CScrollBar::ShowScrollBarɃ�CScrollBar::EnableScrollBar���Microsoft Foundation Class Library Reference�Window Classes|�GDI��Other Windows Classesi�File Classes��Object Input/Outputm�Exceptions��Collections+��Miscellaneous Support Classesƒ�Global Functions and MacrosT��Copyright�class CArchive
�CArchive::CArchive�CArchive::~CArchivei��CArchive::Close��CArchive::Flush!�CArchive::GetFiles}O
U�CArchive::IsLoading��CArchive::IsStoringׁ�CArchive::Read@��CArchive::ReadObject@�CArchive::Write��CArchive::WriteObject�CArchive::operator >>��CArchive::operator <<��class CArchiveException��CArchiveException::CArchiveException�CArchiveException::m_cause��class CByteArray;��class CDumpContextr�CDumpContext::CDumpContext��CDumpContext::FlushԀ�CDumpContext::GetDepthӁ�CDumpContext::HexDump焠CDumpContext::SetDepth��CDumpContext::operator <<��class CDWordArray : public CObjectr��class CException��class CFile$��CFile::CFile��CFile::~CFile�CFile::Close��CFile::Duplicate��CFile::Flush��CFile::GetLength��CFile::GetPositionc��CFile::GetStatusu�CFile::LockRange$�CFile::Open��CFile::Read{��CFile::Remove��CFile::Renamem�CFile::Seek�CFile::SeekToBegin6��CFile::SeekToEnd؁�CFile::SetLengthCFile::SetStatus��CFile::UnlockRange��CFile::Write|�CFile::m_hFile��class CFileException���CFileException::CFileExceptionU��CFileException::ErrnoToException��CFileException::OsErrorToException1�CFileException::ThrowErrno
�CFileException::ThrowOsError큧CFileException::m_cause)��CFileException::m_lOsError�class CMapPtrToPtr��class CMapPtrToWord#��class CMapStringToObz�CMapStringToOb::CMapStringToOb��CMapStringToOb::~CMapStringToOb��CMapStringToOb::GetCount7��CMapStringToOb::GetNextAssoc�CMapStringToOb::GetStartPosition6�CMapStringToOb::IsEmpty�CMapStringToOb::LookupW�CMapStringToOb::RemoveAll-��CMapStringToOb::RemoveKeyڃ�CMapStringToOb::SetAt�CMapStringToOb::operator []]�class CMapStringToPtr���class CMapStringToStringG��class CMapWordToOb��class CMapWordToPtrX��class CMemFile��CMemFile::CMemFile��CMemFile::~CMemFile��class CMemoryExceptionH�CMemoryException::CMemoryException�class CNotSupportedException��CNotSupportedException::CNotSupportedExceptionF��class CObArray�CObArray::Addb�CObArray::CObArrayFiles}U	$��CObArray::~CObArrayƀ�CObArray::ElementAt肮CObArray::FreeExtra���CObArray::GetAt��CObArray::GetSize��CObArray::GetUpperBound�CObArray::InsertAt;��CObArray::RemoveAll���CObArray::RemoveAt���CObArray::SetAty�CObArray::SetAtGrowb�CObArray::SetSize~��CObArray::operator []g��class CObject��CObject::AssertValid���CObject::CObject���CObject::~CObject���DECLARE_DYNAMIC Macro��DECLARE_SERIAL Macro��CObject::Dump��CObject::GetRuntimeClass��IMPLEMENT_DYNAMIC Macro���IMPLEMENT_SERIAL Macro��CObject::IsKindOfU�CObject::IsSerializableb�CObject::Serialize���RUNTIME_CLASS Macro���CObject::operator =4��CObject::operator delete}�CObject::operator new��class CObListt��CObList::AddHead��CObList::AddTail��CObList::CObList�CObList::~CObList���CObList::Find���CObList::FindIndex�CObList::GetAt^�CObList::GetCount��CObList::GetHeadM��CObList::GetHeadPosition�CObList::GetNext�CObList::GetPrevz��CObList::GetTailL��CObList::GetTailPosition���CObList::InsertAfter��CObList::InsertBefore�CObList::IsEmpty���CObList::RemoveAll���CObList::RemoveAt��CObList::RemoveHead��CObList::RemoveTail��CObList::SetAt���class CPtrArray : public CObject��class CPtrList : public CObject|��class CResourceException���CResourceException::CResourceException݄�class CStdioFile��CStdioFile::CStdioFile��CStdioFile::~CStdioFile��CStdioFile::ReadString��CStdioFile::WriteStringp��CStdioFile::m_pStream�class CStringu��CString::AnsiToOem&�CString::Collate��CString::Compare��CString::CompareNoCasé�CString::CString*��CString::~CString��CString::Empty��CString::Find��CString::FindOneOf��CString::GetAtW��CString::GetBuffer@�CString::GetBufferSetLength��CString::GetLength��CString::IsEmpty��CString::Left��CString::LoadString���CString::MakeLower��CString::MakeReverse��CString::MakeUpper��CString::Mid��CString::OemToAnsiArray::CObArrayFiles}Q
k��CString::ReleaseBufferG��CString::ReverseFind�CString::Right�CString::SetAt��CString::SpanExcluding*��CString::SpanIncluding���CString::operator =���CString::operator const char*���CString::operators <<, >>f�CString::operator +t	�CString::operator +=���CString Comparison Operators"��CString::operator []��CString Exception Cleanup�	�CString Argument Passing���class CStringArray : public CObject��class CStringList : public CObject���class CTime3�CTime::CTimeх�CTime::Format>��CTime::FormatGmt��CTime::GetCurrentTime��CTime::GetDay1�CTime::GetDayOfWeek��CTime::GetGmtTmP��CTime::GetLocalTm���CTime::GetHour��CTime::GetMinute���CTime::GetMonth��CTime::GetSecondY�CTime::GetTime��CTime::GetYearP�CTime::operator =��CTime::operator +, -���CTime::operator +=, -=L��CTime Comparison Operators���CTime::operators <<, >>�class CTimeSpanM	�CTimeSpan::CTimeSpan$��CTimeSpan::Format��CTimeSpan::GetDays��CTimeSpan::GetHoursM�CTimeSpan::GetMinutes�CTimeSpan::GetSeconds��CTimeSpan::GetTotalHoursG�CTimeSpan::GetTotalMinutesƀ�CTimeSpan::GetTotalSeconds���CTimeSpan::operator =!��CTimeSpan::operators +, -��CTimeSpan::operator +=, -=�CTimeSpan Comparison OperatorsS�CTimeSpan::operators <<, >>��class CWordArray : public CObjecto��Diagnostic Services��General Diagnostic Macros��General Diagnostic Functions�Object Diagnostic Functions	�afxMemDF���AfxCheckMemory���AfxDoForAllClasses��AfxDoForAllObjects��AfxEnableMemoryTracking�	�AfxIsMemoryBlock���AfxIsValidAddress���AfxSetAllocHook��AfxSetAllocStop��ASSERT MacroԀ�ASSERT_VALID Macroo��CMemoryState::Checkpoint���CMemoryState::CMemoryState���CMemoryState::Difference>�CMemoryState::DumpAllObjectsSince��CMemoryState::DumpStatistics��TRACE Macro}��VERIFY Macro���Exception Processing��Exception MacrosH�Exception Throwing Functions��Termination Functions��AfxAbortg�AfxSetTerminate}c
�AfxTerminate���AfxThrowArchiveException��AfxThrowFileException��AfxThrowMemoryException���AfxThrowNotSupportedException�AfxThrowResourceExceptionX�AND_CATCH MacroP�CATCH Macro���END_CATCH MacroI��THROW Macrom��THROW_LAST Macro�TRY Macro*�FindStringExact�GetItemHeight�SetItemHeight��EnableScrollBar��ShowScrollBar��AddString��Attach.��Clear��Close��Copy���Create��CreateIndirectr��Cut?��DeleteString*��DeleteTempMap�Detach��Dir��Find��FindStringo�Flush[�Format1�FromHandle��GetAt��GetChildFrame?��GetCountU��GetCurSel7��GetItemData��GetLength���GetParentFrame��GetScrollPosׅ�GetScrollRangeņ�GetSel���InsertString��IsEmpty��LimitText��MDIActivate��MDIMaximize��MDIRestore��Paste^�PreTranslateMessageX�Read��RemoveAll��RemoveAt݁�ResetContentȂ�SelectObject���SelectStockObject���SelectString���SetAt���SetCurSely��SetItemData;�SetRect�SetScrollPos��SetScrollRange��SetSel��SetTabStops��Writeq�m_cause[�m_hWndH�Macros and Global FunctionsT��Global Category Table$��Alphabetical Listing of Macros��Alphabetical Listing of Global Functions���AfxGetAppȇ�AfxGetAppName���AfxGetInstanceHandle��AfxGetResourceHandle��AfxRegisterWndClass��DEBUG_NEW Macro��Message Map Cross-Reference3��Message Map Function CategoriesȆ�WM_COMMAND Message HandlerE��Child Window Notification Messages�WM_ Messages Index��How To Use the Message Map Cross-Reference��Generic Control Handler!�User Button Handlers��Combo Box HandlersE��Edit Control Handlers|��List Box Handlers���WM_ Message Handlers: Functions A - C/�WM_ Message Handlers: Functions D - ER�WM_ Message Handlers: Functions F - KR�WM_ Message Handlers: Functions L - M��WM_ Message Handlers: Functions N - OQ��WM_ Message Handlers: Functions P - R��WM_ Message HandlersFunctions S�WM_ Message Handlers: Functions T - ZTerminate}B��User-Defined Handlersl�DECLARE_MESSAGE_MAP Macrop�BEGIN_MESSAGE_MAP Macro��END_MESSAGE_MAP MacroH��OLE Class Listx��class COleClientDocӇ�COleClientDoc::COleClientDocF�COleClientDoc::~COleClientDoc�COleClientDoc::GetNextItem�COleClientDoc::IsOpen��COleClientDoc::NotifyRename��COleClientDoc::NotifyRevert���COleClientDoc::NotifySaved7��COleClientDoc::Register���COleClientDoc::Revoke†�class COleClientItem��COleClientItem::Activate7��COleClientItem::CanPaste��COleClientItem::CanPasteLink��COleClientItem::CloseLink���COleClientItem::COleClientItem:��COleClientItem::~COleClientItemh��COleClientItem::CopyToClipboard���COleClientItem::CreateCloneFromp�COleClientItem::CreateFromClipboard��COleClientItem::CreateLinkFromClipboardn��COleClientItem::CreateNewObjectڇ�COleClientItem::CreateStaticFromClipboard��COleClientItem::Delete~�COleClientItem::Draw~��COleClientItem::EnumFormats��COleClientItem::FreezeLink��COleClientItem::GetBoundsX�COleClientItem::GetData��COleClientItem::GetDocument��COleClientItem::GetLastStatusO�COleClientItem::GetLinkUpdateOptions��COleClientItem::GetName���COleClientItem::GetSize#��COleClientItem::GetTypex��COleClientItem::InWaitForReleaseф�COleClientItem::IsEqual4�COleClientItem::IsOpen��COleClientItem::OnChange��COleClientItem::OnRenamed��COleClientItem::ReconnectLink��COleClientItem::Release���COleClientItem::Rename��COleClientItem::ReportError���COleClientItem::RequestData��COleClientItem::SetBounds�COleClientItem::SetColorScheme�COleClientItem::SetData��COleClientItem::SetHostNames	��COleClientItem::SetLinkUpdateOptions��COleClientItem::SetTargetDevice��COleClientItem::UpdateLink��COleClientItem::WaitForServer�class COleServerk�COleServer::BeginRevoke(�COleServer::COleServerd��COleServer::~COleServer���COleServer::IsOpen���COleServer::OnCreateDocB��COleServer::OnCreateDocFromTemplate��COleServer::OnEditDoc}mG
����COleServer::OnExecute��COleServer::OnExit��COleServer::OnOpenDoc.��COleServer::OnRelease���COleServer::Registerb��COleServer::m_bLaunchEmbedded���class COleServerDoc��COleServerDoc::COleServerDoc
	�COleServerDoc::~COleServerDoc���COleServerDoc::GetNextItem���COleServerDoc::IsOpen{��COleServerDoc::NotifyAllClients���COleServerDoc::NotifyChangedy��COleServerDoc::NotifyClosed��COleServerDoc::NotifyRename<�COleServerDoc::NotifyRevert$�COleServerDoc::NotifySaved��COleServerDoc::OnClose�COleServerDoc::OnExecute���COleServerDoc::OnGetDocument���COleServerDoc::OnGetItem܃�COleServerDoc::OnSetColorScheme@��COleServerDoc::OnSetDocDimensions��COleServerDoc::OnSetHostNamesy�COleServerDoc::Register��COleServerDoc::Revoke��COleServerDoc::m_hPalette��class COleServerItem��COleServerItem::COleServerItem���COleServerItem::~COleServerItemc�COleServerItem::GetDocument��COleServerItem::GetMetafileData�COleServerItem::GetNativeDataW�COleServerItem::IsConnected�COleServerItem::NotifyChanged��COleServerItem::NotifyClient���COleServerItem::OnDoVerb#��COleServerItem::OnDraw���COleServerItem::OnEnumFormats��COleServerItem::OnExtraVerb�COleServerItem::OnGetTextData��COleServerItem::OnReleasew�COleServerItem::OnSetBounds�COleServerItem::OnSetColorScheme#��COleServerItem::OnSetData��COleServerItem::OnSetTargetDevice9�COleServerItem::OnShow��COleServerItem::m_hPalette��COleServerItem::m_rectBoundsj�class COleException���COleException::COleExceptionN�COleException::m_status��OLE Global Functions��AfxOleSetEditMenuM��AfxOleInsertDialog���AfxOleLinksDialog���AfxThrowOleException�GetDocument��GetNextItem��IsOpen�m_hPalette��NotifyChanged��NotifyRename��NotifyRevert��NotifySaved��OnExecute=��OnRelease*��OnSetColorScheme/��Register6��Revoke��rver::IsOpen���COleServer::OnCreateDocB��COleServer::OnCreateDocFromTemplate��COleServer::OnEditDoc}���+6�>�N]��i2�z��U�	$��
k�����
��fixrtf.c6/=AGRbm �!�"�$�%�&�'�)�*�+�,-.'/=0O1]5a7g9q;z<�?�@�A�B�C�D�E�F�G�H�I�JK#L&M:N=OJPVQYS\T_VlWX�
u���c��������������������y��
���	_POWTABLEhx� ��zs���������������������s�usCurPos�usEndPos�usMaxPos�asel�iSelPosj�usCurOffsetl�cbAllocn�selTablep�	ppszTabler�usBufIncrementv�zt������������������������������������������������������������������������������������������������������������������������������������������������������y@�����_iobufh����������'�_ptr�_cnt�_base�_flag�_filex��zt����������/H&H;)L4<_t+���׋���	����� �/�\�Y�1��3����[5�?����f�����p��������,��$;�<��D����g�;P���vn6ǃ#��+#ك9��jڃ��e��2�zE(���U�WJ�/�{�ռ������ք�� ����S?q-�I`GJ�@��YpZ�Z|{醅H�n�&����!�~��?4�B�S��L�t��Gg��P8�|�݂K������`B�����_��
�Ly����*b͆�=���e��4�����.�S��q4�o��f�M����t��T��%�qz�F��+�S!$7����R}�Zz2 ЉU�lUg��]Pn8����s� 4����������^I���@+ꥋ��]վ���1�gɋ�����a� h�b�o4�����eg���	�#�����9�����=����.=�4�bt9\�ƀ�%�q�.�@�Cz����\��Ձsg��L��GH؍��:48#���1�{�G��V����`�{���qa�����Ԏu�fb��p�D{x�r�"����;�'����|���u�4�;�L�;�
*<�Ç![��t��eΖ����v��������Q�:��hrR*���<,_���~Wȑ��$&���z��P���<���T����Q����C����J�]�>�<Ń<���:yR���qo�x5=�v�N�x�:� h!���Wq$��iʅ?�~��j�B����Vd������;H����.��ׅ�}�τ�c{�����&��&���"���.�#�;�Lu���yG�<�j�J5���P��a4-��Ӈ9����i�7����VOܙ��=�D�#�����-{��e�嘛a���E���ư�X��0����>�B�����N�@

x���."���L;Ŝ��pE�7��:d���0B#/����l�N��{S�ȝ�Bc�띄��S��G��n�h�o���y��:����	jԑ5��
�um�(����:���"��†��-��9
t�����r����g��$��6�CJ�*��Lq��n�~��U���IWe�z���n��8�������K�G-rv��#S�����D˫�C%PͫԀ����׀!PU�
�v��)��3k<�i���c-@䬀�/��'���O9eC����~7V�D�p�v����Lz����d��)���7��nC�����������L5-������S@�>�ІAk
������:���oO�b�BP��o:Y������9���BaB��Fn�_���o�73�k���"5��
�.��I�d<��[�MdYO��T��ҵ��d�����NH�ʶ��qjض�up�v���"?:��m�Y�"����y����8��ᆐ ����O����F���H��v�qa���P%Où�
�~��z�xhg��Ƀ��K��́�0J»�nY1��u>�ă�m@���c�ͼ��]�|��/�ý�4��=��+q����W
濾)�CMHǾ�DU�վ⇑�x�����������I�����m�W���s�k�����L��u���a{���/N���N�<���J��>!Ā�ر>ĕ�X��������߄n&Ikű�+a��g9��luF�1�$��ƽP�}����&Y��F�g:�z�������)I��Ƀ���X���=0�������c�XEW<���{Yh�8��k�f�s����tI��y��������&�-E/{����QTok�����*B���*O`���%
	��(I	d �	N�b�,�	烓�L
g����N
��C�_
]3���
����
��Z���
�����
p��qw
ׁ�P&�H��I���*0����]fN��ƃG'�C�B��W���u�x�Xpw
�S�0|
߄�w|
߅���
�^��_�;�&�h!��O����q&R��HY��� pA6����[R�l$p~�"��������C y�Ԁ�f�yB������$����%�6�3^�m�����Ɗ��� ɟC)����B�q�)^O_�9P����{����XR�$���?0B�*,�0~+�$J
�A�P��5rS��:e����5��S�&"	5�j@��&U�T�s�t@����*K�݁��>�g�o��H�b�<���E��^��'��F|����Q���okXB��X��H�k����r�4��y�x��|�����f�O�S����\��	��R_����$�b�^�{�����������Q�ni�^ӵu����}����ф��a�����l	���������'���^�G���t%���[X��WX=|����
��Y}F&���lU�x��t ��>W���;nu4�a),��F��U5�OɃ�焠�&( c���P� �1��� j�1��!͉.k�:!��R$�^!߉/N�c!c��z!Caɓ!p#��!I�d'��!�	��ؤ"�w��"���L��"m�P�/8#���eN#U�,
R#˂Wo��#J�,��##4�
$�V@"$8�>�M$;�}�$q�]�$H���|�$vr�i5%F�3��*���4��*!���w+4K2+M�Ge+����)�+������+��o΃�+�	��|5,�q@W�,H:�-K�VN
#-��'-����-u���4�-х��L.ƀ���`.�%@�.��S΋�.Y�}���.Ѐ^�*/�^�/&�F�P/y����/�!(�/M����0��30Ӂ���0�	M3�0ՂZx�
1��Z1,H=�71��O1�0�^1P�X�1݈]_u2P
���2��z�2Y����2���!3ky��T3m�0�U3Zy��3݃�%T�30
��35��4>��^�4]l��4����4#����4�#��'5V@/R5H�]�Y5��2g�5o���5h�;x|	6��zH�M6h�{�c6�-2�6G{T�6�9��6$�F�7��w-7��J��7T���8��8�*8�/��U8;���"~9v�W�9)�^�հ:6���ذ:	�%X[�:�H[�:,�\��;����;cqm��;�?��;*_x=!<k�l�'<�?MT�<j���=��i�C=�;Q�=/�w8ȹ=���n�=�R�e�>*N`J�?p�Q���?.�Z�?��k�7@��j»C@IM��@���%A��{kAo��W�nA{�8��A��f�A|��Ż�A$�U�A���F�Am�Z!Bxb�wBڀk��x�����c�����g�%���B��*^���T��`�T����T���eT��`ET��@%T����S�� T����S����S��`wS��@WS��	S�� 7S����R����R���qR����R���QR���1R��`R��@�Q����Q�� �Q����Q���aQ��`AQ��@!Q���P�� Q���P����P���pP���P���PP����O����O��`�O���mO��@�O���MO���-O���
O��`�N��`�N��@�N�� {N��[N��@N���:N�� �M���M���M���TM����M��`4M��@M�� �L�� �L���L���L���_L���?L@������CT��L�U����H�W���x˫�A@#|˸������yOl����Rb����Df�Y������Kjz͂h����zl��ņ�u�Zο��;5�ί�y4�ά����8�q$
���__Z� �+�L�	�.��'�36R��q��Z�F���M�j�큧�������љ��ʂ����4�o5�Y~�%Aҙ���ү���0��*�����ґ����,8z5�@	0kfD��#��]ӛ�E�J�?�A�����"�����\�������3�:�r;չ�l�0�խ���8������Y����լ�H���^����.�_#���Q�+���!��m��dvֆq��X��z��l��
إBYu=�i���}V�V���S�ؖ�U� �؄�3���"������3I١�X.�|٨�?9��g�\;c-�OB�Z8�92U3<�v��k�]��<u�����y�Zl4���Y���ڣ����s��ڌI"��@��:�@�������Z���4	��*x���&2ê�$��{��σ�y���ȇ�����t�W�@�i|����깵ܪ�x�ܼU8��R=�@����l�����ެ�����L����ީ�����P���ބ��UߟO������)�B��r^�����
��P���������l2�1ᢃb�h�YGn���	�{���đ��Sj1����W�����f��7�Ԕ�sR|�����'��a�1���ܾB�D��T���������1�w��O�^�X��^�$�`>�2�f[r7���z?��v9x����=���sń��W�����-��9�����8G�䲁�I"�k|��6���N��a�*�朇��Ճ��s]���W�)7����œ�*���%��V�,����J�/&���"�|>���L��~���f�B�����Zs=�p���C貃?����c�`R�a��;����67������f�j��ʀ�4����gF��:3����PI
��˂syD�=XD�S�A�nT��N��`���,�󃈄�׸�ۀ'����Zdž"������-�)	bm�Z��Gorw��+�����C�?�;���0BB����|6��s3u=�2c���K�����6��9��-��S�jc�e�\3(�
�u�o4��Œ;����U��e��nSٛ��x�.6o/�J'0F��q��H�\�q�HY����������������7ʺ�����|��������,���#��o�� �����o��7���80�w��^tN�����%��������w{�2��M�Z��8�\I�����Į��CN�@�R(���s:���?�=�e:���x�	i���^�������)�E��������r��ɔ���	�Y�����)�Nv��T�+F`&�yQj��;�"����D7�~6eO����d�	^�4�1������q Up�]O�f=z��3	3��P��9��0��������6�.��	����
D�	ĂP�\
��YT����
 '����+ҀhR�.P�R��,��QV�^�L�w�h�<�b�eb������H����B7���B;�@A�B��(.Cp��pCCe���QC�b��[C�����C�S�U�C�B��CJ
h�a�C�C���C.���g�C+�}���C�#���Co��	NDC!��D��b]52Em���i@E|��)u�Eň�
�E ��t��FT�ᥣF`�
+��Fy����Gr����Gz�A�'G|�J�G(b�G�c�G��3ϦGG���_H'?ا�H�����Hk��$IT����YI��aaI�dtI��2��I�\�i�I��6�I?�~��JۃY)�_J!�m�vJ\k��J����K��a
�K��a8q0K�a���K6�c�VL�V�L�����L�+�M��n@MX�$"�JM�@z�fM��gM��L�uM��S�N.��BN��U$�Nq�J��N���p�N���};�N.Y�O��P�O�g/�O8���1zP*����P�(� �P����P����Q�?��Q��"�Q���1�Q܃�;a+Q2�y�*HQ��;IQ��9�iQ}��A��Q���Q�J�QC[E&�Q��m�4.R‚>67OR�
��~R����8�R�Z�!�R����PUSK>�ffSn>hH�S���2�S�����S���!T؁�u9�T:�ڣT�

I�T�F���T3�\[,U��I.Ul�r/U?�s]VU���}��U�L�JV���jKV��
=UV��.��V�`�חV�_`O�V��L��V����lW%��4AX
�=�'�X�K O�X!"~n-Y�����Y����~aZ��GxZ���yZ����Z1����ZP�	��Z+����Zƒ���Z��%�Z�&�Z|�'�Z��*�Zi�+�Z��,�Zm�H]�Z�Rn��Z���7[��w[+>.��[����[���%\p�+<:\���}\�� �ݪ\�N��\6�>���\�gQp�\����]$��i]a��p]�f��]�����]R�MMQ�]��39+^�	(Uc1�l��`c3��1~xc.Tx��cy}��c���5Id��A��zd]r�dU�k�	Ne�n�h�e���Kfv	���(f�#�sf�v���f��o��f�e��fK�b6g��AÂg��5�g���`�g��9
�g�w��.h�m�@[hy�R�6�h���*�h��&�iy�dp�i����i%~�j��j���(j��3܁j��e�j΂R6�j�Fk����*k��_REk���Qk��	g*�k��
l���H]Cl��al��g�m��(LC�m�9�{in_�Kkn���wn�G���ndž#�b�o��E�8p}�5�Op���ݹpl#n:�p�A׸$q�LFD@q����Gq��EJq�o�WJq���Nqz�����q����r��r�n��r�n�yMr�?8�.s�}���s��ꭳsYTa�sF	tl�Wɴt��I`ti�
�t.�p�Vu�f0��up/2Ѿu@���u�vT�u��uE�v|�9g�w�_ەx�3�ABxᄘKXx%���x�b��By�H5by�T���y��a�y
<�y�@�z!���z����{���0|�|Ag|�aO�|H�h�|�3a}n���e}���!�}��ez��}
�Ke~n��X��~D;���~�����~����4b��m�V�H��x�H�&�[����э��э�f�э�t	�э����э��)э����*э��������Qmħ���5{o�E4J�|��������^����Z�Xh�s�&�
-y��z�o����𴥘�:�ǥ��r�ͥ���Ƥ3�XsUk�����.
�n���� ��Z�sX���oi�a�w�$�1�㌧�6��*�A*�7���C�[�0�Q��������A֡�>��=+�$��48���Ω	����
��D3?�e���Q�Q�Q�����V������ؘ���{���P�%�4�����N�����#]�����M���K�G-rv��#S�����D˫�C%PͫԀ����׀!PU�
�v��)��3k<�i���c-@䬀�/��'���O9eC����~7V�D�p�v����Lz���\僭����d��)���7��nC�����������L5-������S@�>�ІAk
������:���oO�b�BP��o:Y������r�X�2�~��������}���#��p���d���j򲗆�On�����9���BaB��Fn�_���o�����73�k���"5��
�.��I�d<��[�M�����_�3�����I����dYO��T`<W�����ҵ��d�����N�ö{��H�ʶ��qjض�up�v���k��w�"?:��m�Y�"����y����8��ᆐ ����O����F���H��v�gA����vI���qa���P%Où�
�{�Ȇ�RN����~��z�xhg��Ƀ��K��́�0J»�nY1��u>�ă�m@���c�ͼ��&�a�7��]�|��/>ʌ��������(��ý�4��Ͻ~���=��+�ۢ��q����W
濾)�CMHǾ�DU�վ⇑\�g���x�����������I$�m��������m�W���s�k�����L��u���a�]fß��{���/N���N�<���J��>!Ā�ر>ĕ�X��������߄n��(����&Ikű�	��H�+a��g9����?����lu-�ư��
Ɖ��F�1�$�m�ƹ���ƽP��Ʒ��{A�[��}����&Y��F�g����:�z�������){��ȷ�@�Tɍ���ƽ�7��I��Ƀ�����ɭ���X���=����'z���x���c���[���2'���	�������������������������!��������!k���S��� 1������ ����.��������,��������h���!E���A���.���'��������������(�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������X�g�%$���T�%�F΍)&�"�`&al��&z�Є':�hF'���'��x)�'m�hK��'y���L(�Z�#R(��Q��s(h�j%v(��� �(2eӪ(+����(n9a�)��$�� *|t$*�Qo�%*��V�'*3��op*��M���*�L��*�S%��*��&��*�'��*S�3��*���4��*!���w+4K2+M�Ge+����)�+�����+����+��o΃�+�	�"��+����|5,�q�pd,H��@W�,H:�-K�VN
#-��'-���|c-x����-u���4�-х��L.ƀ���`.�%�Mb.6��@�.��S΋�.Y�}���.Ѐ^�*/�^�/&�F�P/y����/�!(�/M����0��30Ӂ���0�	�3�0x��M3�0ՂZx�
1��Z1,H=�71���F1B��O1�0�^1P�X�1݈]_u2P
���2��z�2Y����2���!3ky��T3m�0�U3Zy��3݃�%T�30
��35��4>��^�4]l��4����4#���S�41���4�#��'5V@/R5H�]�Y5��2g�5o���5h�;x|	6��zH�M6h�{�c6�-2�6G{T�6�9�8�6���6$�F�7�0(#7���w-7��J��7T���8��8�*8�/��U8;���`z8�����8����"~9v�W�9)�^�A�:7���հ:6���ذ:	�%X[�:�H[�:,�\��;����;cqm��;�?��;*_x=!<k�l�'<�?MT�<j���=��i�C=�;Q�=/�w8ȹ=���n�=�R�>>���e�>*ND��>U��`U?��`J�?p�QR��?p����?.�Z�?��k���?:���7@��j»C@IM��@���%A��{kAo��W�nA{�8��A��f�A|��Ż�A$�U�A���F�Am�Z!Bxb�wBڀkDISPLAY:_INSTANCE�����	�	 ��@ ���=�߿DPATH=C:\LANMAN\NETPROG;d:\os12;PATH=D:\C6;D:\BATCHP;D:\BINP;D:\BINB;C:\LANMAN\NETPROG;D:\OS12;E:\WORD550;E:\EXCEL;INCLUDE=e:\powtools\includeLIB=e:\win32\lib;\powtools\libINIT=d:\initTERM=ibmans50HOME=c:\usrTMP=e:\tmpTEMP=e:\tmpQH=-sg4 -q d:\qh -rlSUNBOX=gorgUSERNAME=brucehaBRUCEHA=bshREFPAGE=-vREFVP=-2e -vREFPOST=-nv -vMASTER=-nvCOMSPEC=D:\BINP\CMD.EXEPROMPT=$p\D:\BINP\CMD.EXED:\BINP\CMD.EXE/c cl -Gs2 -Zpi -W3 -Od fixrtf.c -link /NOI slibcep bsh slibcep��c���P�C��[�`���ڃ�����2��
�38b�ᄂ����L���=��
0���6C4�gBa�a�4��e졇�ԏ��;���o혉a�|T�ڇ��Vd���'
��}����__c��L�������8|1�Em�8k�݄�uq���\,n��,�E3f��b���L��PV�R�3m6���6M����yv+����m����S;����67��BO\������f�j��ʀ�4����gF��:3����PI
��˂syD�=XD�S�A�nT��N��`��|�����,�󃈄�׸�ۀ'����Zdž"������-�)	bm�Z��Gorw��+�����C�?�E����;���0BB����|6��s3u=�2c���K�����6��9��-��S�jc�e�\3(�
�u�o4��Œ;����U��e��nSٛ��x�.6o/�J'0F��q��H�\�q�HY����������������7ʺ����گ�����|��������,���#��o�� �����o��7���80�w��^tN�����%���������������w{b��Ȃ��2��M�Z��8�\I�����Į��CN�@�R(���s:���?�=�e:���x�	i���^�������x6�O�)�E����T�E�������������r��ɔ���	�����Y�����)�Nv��T�+F`&�y�L/�Qj����R�j#R��n%����'Q��"�)X�u+���,��[�[�;�"����D7�~6eO����d�	^�4�1������q Up�]��W�S9���O�f=�^��z��3	3��P��9��0��������6�.��	����
D�	ĂP�\
��YT����X3��
 '����+ҀhR�.P�R��,�����o��V���QV�^�L�w�h�<�b�eb������������s��	��s��s�s�	 ����������s��e��s��e��s��e��s��e��s�e�s�e�s�e�e�s#�e(�e-#-3�6�:e>#sBeFZJBM�
�Q�	V�	[�e`�ee�ei�m�cs�ex�e}�e��e��e��s��e��s�s�s�����s��s�����e��s�	��e�T���s�s��s��s�W5���d�������e��e��e��������*^���xMn^�F�L�^�~d�^��v��^+����^n\�_Ed�|5_�F�~_�?�_@�5�_��
�_�JD�_<e*��_����=`ф:U�>`肮��a��U�U!a��
�2a����ea?����az�e�2"b�e��Jb�p�x�b;d~��b����b�l(Uc1�l��`c3��1~xc.Tx��cy}��c���5Id��A��zd]r�dU�k�	Ne�n�h�e���Kfv	���(f�#�sf�v���f��o��f�e��fK�b6g���n:g����kg�AÂg��5�g���`�g��9
�g�w��.h�m�@[hy�R�6�h���*�h��&�iy�dp�i����i%~�j��j���(j��?�,jh���vj���3܁j��e�j΂R6�j�Fk����*k��_REk���Qk��	g*�k��I�l��
l���H]Cl��al��6�l��g�m��(LC�m�9�{in_�Kkn���wn�G���ndž#zs�n���b�o��=�p��E�8p}�5�Op���ݹpl#n:�p�Ak��p�׸$q�LFD@q����Gq��EJq�o�WJq���Nqz�����q����r��r�n��r�n�yMr�?8�.s�}���s��ꭳsYTa�sF	tl�Wɴt��I`ti�
�t.�p�Vu�f0��up/2Ѿu@���u�vT�u��uE�v|�9<�[w�g�w�_ەx�3�ABxᄘKXx%���x�b��By�H5by�T���y��a�y
<�y�@�z!���z����{���0|�|Ag|�aO�|H�h�|�3a}n���e}���!�}��ez��}
�Ke~n��X��~D;���~�����~����4b��d/���m�V����cGne-#agnoT�-#0fG�
��J���rkG�+����aG�CButton__Create CComboBox__Create CDialog__Create CEdit__Create CFrameWnd__Create CListBox__Create CMDIChildWnd__Create� CMDIFrameWnd__Create CMetaFileDC__Create CScrollBar__Create� CStatic__Create CWnd__Createk �����aG��-#�(.�6O����kG�)����`aG���G)�����`Gid�-#G��H�PL���@eG�'������dG��-#G�\�dL���neG�'����eG��-#G�a�iL���kG�'����-#O����G���kG�+�����`G�*'CATCH, -#-#j�rQ����kG{+����2aG�AND_CATCH, MEND_CATCH (bG. -#C-���O���vkGY+����\cG�2aGd 
siontfG to AfxDoForAllClasses%����������������������aGbLisAfxDoForAllClassesULlp��@$����@�@@@@@�@�@

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.