windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ-µÚ42ÕÂ
°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
¡ö¡¡¡¡¡¡BIF_BROWSEFORPRINTER¡ª¡ª¶Ô»°¿òÖÐÖ»ÄÜÑ¡Ôñ´òÓ¡»ú¡£
¡ö¡¡¡¡¡¡BIF_BROWSEINCLUDEFILES¡ª¡ªÍ¬Ê±ÏÔʾĿ¼ÖеÄÎļþ¡£
¡ö¡¡¡¡¡¡BIF_RETURNONLYFSDIRS¡ª¡ªÖ»·µ»ØÎļþϵͳÖеÄĿ¼¡£
¡ö¡¡¡¡¡¡BIF_STATUSTEXT¡ª¡ª¶Ô»°¿òÖÐÏÔʾһ¸ö״̬À¸¡£
¡ö¡¡¡¡¡¡BIF_EDITBOX¡ª¡ªÏÔʾһ¸ö±à¼¿ò¹©Óû§ÊÖ¹¤ÊäÈëĿ¼¡£
¡ö¡¡¡¡¡¡BIF_VALIDATE¡ª¡ªÏÔʾ±à¼¿òµÄʱºò¼ì²âÓû§ÊäÈëĿ¼µÄºÏ·¨ÐÔ¡£
3¡£¡¡¶Ô»°¿òµÄ»Øµ÷º¯Êý
µ±º¯ÊýÖ´Ðк󣬽«ÏÔʾ¶Ô»°¿ò£¬µ±¶Ô»°¿ò³õʼ»¯ÒÔ¼°Ã¿µ±Óû§Ñ¡Ôñ²»Í¬µÄĿ¼µÄʱºò£¬º¯Êýµ÷ÓÃlpfnÖ¸¶¨µÄ»Øµ÷º¯Êý£¬»Øµ÷º¯ÊýµÄ²ÎÊýÓÐ4¸ö£¬·Ö±ðÊǸ¸´°¿Ú¾ä±úhWnd¡¢ÏûÏ¢ÀàÐÍuMsg¡¢ÏûÏ¢²ÎÊýlParamºÍ×Ô¶¨ÒåÊý¾ÝlpData£¬»Øµ÷º¯ÊýµÄÓï·¨ÈçÏ£º
_BrowseFolderCallBack¡¡¡¡¡¡¡¡¡¡¡¡¡¡proc¡¡¡¡¡¡¡¡¡¡hWnd£»uMsg£»lParam£»lpData
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡eax£»uMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡BFFM_INITIALIZED
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡£¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡¡¡eax¡¡¡¡BFFM_SELCHANGED
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡£¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xor¡¡¡¡¡¡¡¡¡¡¡¡eax£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
_BrowseFolderCallBack¡¡¡¡¡¡¡¡¡¡¡¡¡¡endp
»Øµ÷º¯Êý¿ÉÄÜÊÕµ½µÄÏûÏ¢ÓÐ3ÖÖ£º
¡ñ¡¡¡¡¡¡BFFM_INITIALIZED¡ª¡ªÔÚ¶Ô»°¿ò³õʼ»¯µÄʱºòÊÕµ½¡£
¡ñ¡¡¡¡¡¡BFFM_SELCHANGED¡ª¡ªÔÚÓû§Ñ¡ÔñÁËÒ»¸öĿ¼µÄʱºòÊÕµ½£¬ÕâʱlParam²ÎÊýÖ¸ÏòÒ»¸ö±íʾµ±Ç°±»Ñ¡ÔñĿ¼µÄITEMIDLIST½á¹¹¡£
¡ñ¡¡¡¡¡¡BFFM_VALIDATEFAILED¡ª¡ªÓû§ÊäÈëÁËÒ»¸ö²»ºÏ·¨µÄĿ¼Ãû¡£
Ôڻص÷º¯ÊýÖУ¬³ÌÐò¿ÉÒÔ¸ù¾ÝÇé¿öÏò¶Ô»°¿ò·¢ËÍ¿ØÖÆÏûÏ¢£¬µ±ÊÕµ½BFFM_SELCHANGEDÏûϢʱ£¬¿ÉÒÔ¸ù¾ÝÑ¡ÔñÇé¿ö¾ö¶¨ÊÇ·ñÔÊÐíÓû§µ¥»÷¶Ô»°¿òÖеġ°È·¶¨¡±°´Å¥£¬Í¨¹ý·¢ËÍBFFM_ENABLEOK¡¡ÏûÏ¢¿ÉÒÔ¿ØÖÆ¡°È·¶¨¡±°´Å¥µÄ״̬£º
invoke¡¡¡¡SendMessage£»hWnd£»¡¡BFFM_ENABLEOK£»0£»TRUE¡¡¡¡£»ÔÊÐí¡°È·¶¨¡±°´Å¥
invoke¡¡¡¡SendMessage£»hWnd£»¡¡BFFM_ENABLEOK£»0£»FALSE¡¡£»»Ò»¯¡°È·¶¨¡±°´Å¥
³ÌÐòÒ²¿ÉÒÔͨ¹ý·¢ËÍBFFM_SETSELECTIONÏûÏ¢À´É趨Ŀ¼£º
invoke¡¡¡¡SendMessage£»hWnd£»BFFM_SETSELECTION£»TRUE£»lpPath¡¡
Èç¹ûÏûÏ¢µÄwParam²ÎÊýΪTRUE£¬ÔòĿ¼ÓÃlParam²ÎÊýÖ¸¶¨µÄ×Ö·û´®±íʾ£»Èç¹ûwParamΪFALSE£¬ÔòĿ¼ÓÃlParamÖ¸¶¨µÄITEMIDLIST½á¹¹±íʾ¡£ÓÉÓÚÓÃ×Ö·û´®±íʾ±È½Ï·½±ã£¬ËùÒÔÀý×Ó³ÌÐòÔÚÊÕµ½³õʼ»¯ÏûÏ¢µÄʱºòÓÃÉÏÃæµÄÓï¾äÉèÖóõʼĿ¼¡£
µ÷ÓÃSHBrowseForFolderº¯ÊýµÄʱºò£¬Í¨¹ýBROWSEINFO½á¹¹µÄpidlRoot×Ö¶ÎÒ²¿ÉÒÔÉèÖóõʼĿ¼£¬µ«ÉèÖÃITEMIDLIST½á¹¹±È½ÏÂé·³£¬ËùÒÔÒ»°ã²»Ê¹ÓÃÕâÖÖ·½·¨¡£
ÁíÍ⣬Ôڻص÷º¯ÊýÖпÉÒÔͨ¹ýBFFM_SETSTATUSTEXTÏûÏ¢ÉèÖÃ״̬À¸µÄÎÄ×Ö£¬¶Ô»°¿òµÄ״̬À¸²¢²»ÊÇÖ¸Ò»°ã´°¿Úµ×²¿µÄ״̬À¸£¬¶øÊÇÖ¸×Ô¶¨ÒåÎÄ×ÖÏÂÃæµÄÄÇÒ»ÐÐÎÄ×Ö£¬ÔÚͼ8¡£6ÖоÍÊÇÏÔʾ±»Ñ¡ÔñĿ¼ÃûµÄµØ·½£¬Ê¹ÓÃBFFM_SETSTATUSTEXTÏûÏ¢µÄ¸ñʽÊÇ£º
invoke¡¡¡¡SendMessage£»hWnd£»BFFM_SETSTATUSTEXT£»0£»lpsz
Àý×Ó³ÌÐòÖУ¬»Øµ÷º¯Êýÿ´ÎÔÚÊÕµ½Óû§Ñ¡ÔñĿ¼µÄBFFM_SELCHANGEDÏûÏ¢ºó£¬ÔÚ״̬À¸ÖÐÏÔʾĿ¼µÄÃû³Æ¡£
4¡£¡¡»ñÈ¡·µ»ØµÄĿ¼
µ±SHBrowseForFolder·µ»ØµÄʱºò£¬Èç¹ûÓû§µ¥»÷µÄÊÇ¡°È¡Ïû¡±°´Å¥£¬ÄÇôº¯ÊýµÄ·µ»ØÖµÊÇ0£¬·ñÔòµÄ»°£¬º¯Êý·µ»ØÒ»¸öÖ¸ÏòITEMIDLIST½á¹¹µÄÖ¸Õ룬¶ÔÓÚÕâ¸ö½á¹¹¿ÉÒÔ²»±ØÈ¥É£¬ÒòΪʹÓÃSHGetPathFromIDListº¯Êý¿ÉÒԺܷ½±ãµØ½«Ëüת»»³ÉĿ¼×Ö·û´®£º
invoke¡¡¡¡SHGetPathFromIDList£»lpItemIDList£»addr¡¡szPath
º¯ÊýÖ´Ðкó£¬szPathÖоÍÊÇ×Ö·û´®¸ñʽµÄÓû§Ñ¡ÔñµÄĿ¼Ãû³ÆÁË¡£
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ9Õ¡¡Í¨Óÿؼþ
9¡£1¡¡Í¨Óÿؼþ¼ò½é£¨1£©
¡¡¡¡¡¡¡¡
9¡£1¡£1¡¡¡¡Í¨ÓÿؼþµÄ·ÖÀà
´ó²¿·ÖµÄͨÓÿؼþÓÉctl32¡£dllÄ£¿éÌṩ£¬ËùÒÔÔÚʹÓÃ֮ǰҪÔÚÔ´³ÌÐòÖаüº¬ÏàÓ¦µÄincludeºÍincludelibÓï¾ä£º
¡¡¡¡¡¡¡¡include¡¡¡¡¡¡¡¡¡¡ctl32¡£inc
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡includelib¡¡¡¡ctl32¡£lib
ctl32¡£dllÖÐÌṩµÄͨÓÿؼþÈç±í9¡£1Ëùʾ¡£
±í9¡£1¡¡¡¡Í¨Óÿؼþ
¿Ø¡¡¼þ¡¡Ãû¡¡³Æ
¡¡Ô¤¶¨ÒåµÄ´°¿ÚÀà
¡¡Ëµ¡¡¡¡¡¡¡¡Ã÷
¡¡ÌØ¡¡Êâ¡¡·ç¡¡¸ñ
¡¡
Animation¡¡Controls
¡¡SysAnimate32
¡¡¶¯»
¡¡ACS_
¡¡
Header¡¡Controls
¡¡SysHeader32
¡¡±êÌâÀ¸
¡¡HDS_
¡¡
ListView¡¡Controls
¡¡SysListView32
¡¡ÁбíÊÓͼ
¡¡LVS_
¡¡
TreeView¡¡Controls
¡¡SysTreeView32
¡¡Ê÷ÐÍÊÓͼ
¡¡TVS_
¡¡
Tab¡¡Controls
¡¡SysTabControl32
¡¡ÏîÄ¿Áбí
¡¡TCS_
¡¡
Progress¡¡Bars
¡¡msctls_progress32
¡¡½ø¶ÈÌõ
¡¡¡¡
¡¡
¡¡
¡¡
¿Ø¡¡¼þ¡¡Ãû¡¡³Æ
¡¡Ô¤¶¨ÒåµÄ´°¿ÚÀà
¡¡Ëµ¡¡¡¡¡¡¡¡Ã÷
¡¡ÌØ¡¡Êâ¡¡·ç¡¡¸ñ
¡¡¡¡
¡¡
¡¡
¡¡Status¡¡Windows
¡¡msctls_statusbar32
¡¡×´Ì¬À¸
¡¡SBARS_
¡¡
¡¡
¡¡HotKey¡¡Controls
¡¡msctls_hotkey32
¡¡Èȼü
¡¡¡¡
¡¡
Trackbars
¡¡msctls_trackbar32
¡¡¸ú×ÙÌõ
¡¡TBS_
¡¡¡¡
¡¡
Up¡Down¡¡Controls
¡¡msctls_updown32
¡¡¹ö¶¯Ìõ
¡¡UDS_
¡¡¡¡
¡¡
Toolbars
¡¡ToolbarWindow32
¡¡¹¤¾ßÀ¸
¡¡TBSTYLE_
¡¡¡¡
¡¡
Tooltip¡¡Controls
¡¡Tooltips_class32
¡¡ÌáʾÎı¾
¡¡¡¡
¡¡¡¡
¡¡
ImageLists
¡¡¡¡
¡¡Í¼ÏñÁбí
¡¡¡¡
¡¡¡¡
¡¡
PropertySheets
¡¡¡¡
¡¡ÊôÐÔ±í¸ñ
¡¡¡¡
¡¡¡¡
¡¡
PropertySheetsPage
¡¡¡¡
¡¡ÊôÐÔÒ³
¡¡¡¡
¡¡¡¡
¡¡
DragList
¡¡¡¡
¡¡ÄÜ´¦ÀíÍϷŹ¦ÄܵÄÁбí¿ò
¡¡¡¡
¡¡¡¡
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡
Ôڸ߰汾µÄctl32¡£dll£¨IE4¡£0ÒÔÉÏ°æ±¾¸üеÄctl32¡£dllÎļþ£©ÖУ¬»¹°üÀ¨ÁËһЩÀ©Õ¹µÄͨÓÿؼþ£¬ÕâЩÀ©Õ¹¿Ø¼þÈç±í9¡£2Ëùʾ¡£
±í9¡£2¡¡¡¡À©Õ¹Í¨Óÿؼþ
¿Ø¡¡¼þ¡¡Ãû¡¡³Æ
¡¡Ô¤¶¨ÒåµÄ´°¿ÚÀà
¡¡Ëµ¡¡¡¡¡¡¡¡Ã÷
¡¡ÌØ¡¡Êâ¡¡·ç¡¡¸ñ
¡¡
Rebar¡¡Controls
¡¡ReBarWindow32
¡¡IE·ç¸ñ¹¤¾ßÀ¸
¡¡RBS_
¡¡
Date¡¡&¡¡Time¡¡Picker
¡¡SysDateTimePick32
¡¡ÈÕÆÚʱ¼ä
¡¡DTS_
¡¡
IP¡¡Address¡¡Picker
¡¡SysIPAddress32
¡¡IPµØÖ·ÊäÈë
¡¡¡¡
¡¡
Pager¡¡Controls
¡¡SysPager
¡¡¡¡
¡¡PGS_
¡¡
boBoxEx
¡¡boBoxEx32
¡¡À©Õ¹boBox
¡¡CBS_
¡¡
¡¡
Windowsϵͳ×ÔÉí¸½´øµÄÈí¼þÖÐÒ²´óÁ¿Ê¹ÓÃͨÓÿؼþ£¬ÒÔͼ9¡£1ÖÐËùʾµÄ¡°×ÊÔ´¹ÜÀíÆ÷¡±³ÌÐò½çÃæΪÀý£¬´°¿ÚµÄÉÏ·½Ê¹ÓñêÌâÀ¸¿Ø¼þ£¬±êÌâÀ¸¿Ø¼þÉÏÏÔʾµÄ˵Ã÷ÎÄ×ÖÊÇÌáʾÎı¾¿Ø¼þ£¬´°¿ÚÏ·½Ê¹ÓÃ״̬À¸¿Ø¼þ£»×ó±ßÁгöĿ¼µÄµØ·½ÊÇÊ÷ÐÍÊÓͼ¿Ø¼þ£¬ÓÒ±ßÁгöÎļþµÄµØ·½ÊÇÁбíÊÓͼ¿Ø¼þ£¬ÁбíÊÓͼ¿Ø¼þÖеıêÌâÀ¸±¾Éí¾ÍʹÓÃÁíÒ»¸ö¿Ø¼þ¡ª¡ª±êÌâÀ¸¿Ø¼þ¡£
ÆäËûµÄһЩ¿Ø¼þÔÚ²Ù×÷ϵͳÖÐÒ²Ëæ´¦¿É¼û£¬ÈçÌø¸ñ±í¿Ø¼þͨ³£ÔÚÊôÐÔÉèÖöԻ°¿òÖÐʹÓ㻿½±´´óÎļþʱµÄ½ø¶È´°¿ÚÖÐÓиö½ø¶ÈÌõ¿Ø¼þ¡£
³ýÁËÕâЩ¿Ø¼þÖ®Í⣬Richedit¿Ø¼þÒ²ÊÇÒ»¸öºÜ³£ÓõĿؼþ£¬Richedit¿Ø¼þÊÇEdit¿Ø¼þµÄÔöÇ¿°æ±¾£¬°üº¬Á˺ÜÍêÕûµÄÎı¾±à¼¹¦ÄÜ£¬¿ÉÒÔÓÃÀ´±à¼´ø¸ñʽµÄrtfÎļþºÍ²»´ø¸ñʽµÄtxtÎļþ£¬ÓÉÓڸÿؼþ·Ç³£¸´ÔÓ£¬´úÂëµÄ¹æÄ£±È½Ï´ó£¬µ¥¶ÀÒ»¸öRichedit¿Ø¼þµÄ´úÂë¹æÄ£¾ÍºÍctl32¡£dllÖÐÈ«²¿´úÂëµÄ¹æÄ£Ï൱£¬ËùÒÔWindowsϵͳ½«Richedit¿Ø¼þµ¥¶À·Åµ½ÁíÒ»¸ödllÎļþÖУ¬ÓйØRichedit¿Ø¼þµÄÇé¿ö½«ÔÚ9¡£4½ÚÖÐÏêϸ½éÉÜ¡£
ͼ9¡£1¡¡¡¡³£¼ûµÄͨÓÿؼþ
9¡£1¡£2¡¡¡¡Ê¹ÓÃͨÓÿؼþ
1£®¿â³õʼ»¯
ͨÓÿؼþµÄÊýÁ¿·Ç³£¶à£¬Æ½Ê±°ÑËüÃÇÈ«²¿×°Èë²¢×¢²áÊǷdz£ÀË·ÑÄÚ´æµÄ£¬ËùÒÔÔÚĬÈÏ״̬ÏÂctl32¡£dll²¢²»»á±»×°ÈëÄڴ棬Òò´Ë£¬ÔÚʹÓÃͨÓÿؼþ֮ǰ±ØÐ뽫ͨÓÿؼþ¿â×°ÈëÄڴ棬רÓú¯ÊýInitmonControls¿ÉÒÔÓÃÀ´Íê³ÉÕâ¸ö¹¤×÷£¬µ÷ÓÃÕâ¸öº¯ÊýµÄΩһĿµÄÊDZ£Ö¤ÏµÍ³¼ÓÔØctl32¡£dll¿âÎļþ¡£
µ±¿âÎļþ±»×°ÈëµÄʱºò£¬¿âµÄÈë¿Úº¯Êý»á×¢²áËùÓеÄͨÓÿؼþÀ࣬ȻºóÓû§³ÌÐò¾Í¿ÉÒÔʹÓÃÕâЩԤ¶¨ÒåµÄÀàÀ´´´½¨¸÷ÖÖÀàÐ͵ÄͨÓÿؼþ´°¿Ú£¬Õâ¾ÍÏñ´´½¨ÆäËûµÄ×Ó´°¿Ú¿Ø¼þÒ»Ñù¡£InitmonControlsº¯ÊýûÓвÎÊý£¬Ò²Ã»Óж¨Òå·µ»ØÖµ£¬ËüµÄʹÓ÷½·¨ÊÇ£º
invoke¡¡¡¡InitmonControls
InitmonControlsº¯Êý½ö×¢²á±í9¡£1ÖÐËùÁеÄͨÓÿؼþÀ࣬²¢²»×¢²á±í9¡£2ÖеÄÀ©Õ¹Í¨Óÿؼþ¡£Èç¹ûÐèҪʹÓÃÀ©Õ¹Í¨Óÿؼþ£¬ÄÇôÐèҪʹÓÃInitmonControlsExº¯ÊýÀ´½øÐÐ×°ÈëºÍ×¢²áµÄ¹¤×÷£º
¡¡
invoke¡¡¡¡InitmonControlsEx£¬lpInitCtrls
lpInitCtrls²ÎÊýÖ¸ÏòÒ»¸öINITMONCONTROLSEX½á¹¹£º
INITMONCONTROLSEX¡¡STRUCT
¡¡¡¡dwSize¡¡¡¡dd¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡£»½á¹¹³¤¶È
¡¡¡¡dwICC¡¡¡¡¡¡dd¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡£»ÐèÒª³õʼ»¯µÄÀà
INITMONCONTROLSEX¡¡ENDS
½á¹¹ÖеÄdwICC×Ö¶ÎÖ¸¶¨ÁËÐèҪע²áµÄÀ©Õ¹Í¨ÓÿؼþÀ࣬ÓëInitmonControls×¢²áËùÓÐËüÖ§³ÖµÄͨÓÿؼþÀ಻ͬ£¬InitmonControlsExº¯ÊýÖ»×¢²ádwICC×Ö¶ÎÖ¸Ã÷µÄÀ©Õ¹Í¨ÓÿؼþÀ࣬×ֶοÉÒÔÊÇÏÂÃæÈ¡ÖµµÄ×éºÏ£º
¡ñ¡¡¡¡¡¡ICC_BAR_CLASSES¡ª¡ª×¢²á¹¤¾ßÀ¸¡¢×´Ì¬À¸¡¢TrackbarºÍTooltipÀà¡£
¡ñ¡¡¡¡¡¡ICC_COOL_CLASSES¡ª¡ª×¢²áRebarÀà¡£
¡ñ¡¡¡¡¡¡ICC_DATE_CLASSES¡ª¡ª×¢²áDate¡¡and¡¡Time¡¡PickerÀà¡£
¡ñ¡¡¡¡¡¡ICC_HOTKEY_CLASS¡ª¡ª×¢²áHot¡¡KeyÀà¡£
¡ñ¡¡¡¡¡¡ICC_INTERNET_CLASSES¡ª¡ª×¢²áIP¡¡Address¡¡PickerÀà¡£
¡ñ¡¡¡¡¡¡ICC_LISTVIEW_CLASSES¡ª¡ª×¢²áListViewºÍHeaderÀà¡£
¡ñ¡¡¡¡¡¡ICC_PAGESCROLLER_CLASS¡ª¡ª×¢²áPagerÀà¡£
¡ñ¡¡¡¡¡¡ICC_PROGRESS_CLASS¡ª¡ª×¢²áProgress¡¡BarÀà¡£
¡ñ¡¡¡¡¡¡ICC_TAB_CLASSES¡ª¡ª×¢²áTabºÍTooltipÀà¡£
¡ñ¡¡¡¡¡¡ICC_TREEVIEW_CLASSES¡ª¡ª×¢²áTreeViewºÍTooltipÀà¡£
¡ñ¡¡¡¡¡¡ICC_UPDOWN_CLASS¡ª¡ª×¢²áUp¡DownÀà¡£
¡ñ¡¡¡¡¡¡ICC_USEREX_CLASSES¡ª¡ª×¢²áboBoxExÀà¡£
¡ñ¡¡¡¡¡¡ICC_WIN95_CLASSES¡ª¡ª×¢²áInitmonControlsº¯Êý×¢²áµÄËùÓÐÀà¡£
InitmonControlsExº¯ÊýÊÇInitmonControlsº¯ÊýµÄÀ©³ä£¬Ê¹ÓÃËüÒ²¿ÉÒÔ×¢²áInitmonControlsº¯ÊýÄܹ»×¢²áµÄËùÓÐÀࣨҲ¿ÉÒÔ½ö×¢²áÆäÖеÄÒ»²¿·Ö£©£¬Èç¹ûÖ»Óõ½Í¨Óÿؼþ£¬Á½¸ö³õʼ»¯º¯Êý¶¼¿ÉÒÔʹÓ㬵«ÈôÓõ½À©Õ¹Í¨Óÿؼþ£¬ÄǾÍÖ»ÄÜʹÓÃInitmonControlsExº¯ÊýÀ´½øÐгõʼ»¯ÁË¡£
´´½¨Í¨ÓÿؼþµÄ´úÂëÒ»°ã·ÅÔÚÖ÷´°¿ÚµÄWM_CREATEÏûÏ¢ÖУ¬ËùÒÔInitmonControlsºÍInitmonControlsExº¯ÊýµÄµ÷ÓÃÐèÒªÔÚ´Ë֮ǰÍê³É£¬Ò»°ãÔÚ³ÌÐòÒ»¿ªÊ¼µÄµØ·½¾Íµ÷ÓÃËüÃÇ¡£
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ9Õ¡¡Í¨Óÿؼþ
9¡£1¡¡Í¨Óÿؼþ¼ò½é£¨2£©
¡¡¡¡¡¡¡¡
2¡£¡¡´´½¨Í¨Óÿؼþ
´ó²¿·ÖµÄͨÓÿؼþ¶¼ÒÔ´°¿ÚÀàµÄ·½·¨ÊµÏÖ£¨Î©Ò»µÄÀýÍâÊÇͼÏñÁÐ±í£©£¬ËùÒÔ´´½¨Í¨Óÿؼþ´°¿ÚµÄ·½·¨ºÍʹÓÃ×Ô¶¨Òå´°¿ÚÀཨÁ¢´°¿ÚµÄ·½·¨ÊÇÒ»ÑùµÄ£¬Ö»ÒªÔÚCreateWindowExº¯ÊýÖÐʹÓÃͨÓÿؼþµÄÀàÃû¾Í¿ÉÒÔÁË¡£Èç¹ûÒªÔÚ¶Ô»°¿òÖÐʹÓÃͨÓÿؼþ£¬Ò²¿ÉÒÔÔÚ×ÊÔ´ÎļþÖÐÓö¨Òå×Ó´°¿Ú¿Ø¼þͬÑùµÄ·½·¨À´¶¨ÒåͨÓÿؼþ£¨¼û5¡£4¡£4С½Ú£©¡£
ÔÚ½¨Á¢Í¨ÓÿؼþµÄʱºò£¬¿ÉÒÔʹÓÃWS_CHILDµÈͨÓõĴ°¿Ú·ç¸ñ£¬³ý´ËÖ®Í⣬²»Í¬µÄͨÓÿؼþÒ²ÓÐ×Ô¼ºµÄÌØÊâ·ç¸ñ£¬ÈçÊ÷ÐÍÊÓͼ¿Ø¼þÓÐTVS_XXXXX·ç¸ñ¡¢Áбí¿Ø¼þÓÐLVS_xxxx·ç¸ñµÈ£¬±í9¡£1ºÍ±í9¡£2ÖÐÁгöÁËһЩÌØÊâ·ç¸ñµÄǰ׺£¬ÕâЩ·ç¸ñµÄ¾ßÌ庬Òå¿ÉÒԲο¼Win32¡¡APIº¯ÊýÖ¸ÄÏ¡£
¿ÉÒÔÔÚ¶Ô»°¿ò×ÊÔ´¶¨ÒåÖÐÈç϶¨ÒåÒ»¸öÁбíÊÓͼ¿Ø¼þ£º
¡¡
CONTROL¡¡¡¨¡¨£»¡¡IDC_LISTVIEW£»¡¡¡¨SysListView32¡¨£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LVS_REPORT¡¡£ü¡¡WS_CHILD¡¡£ü¡¡WS_VISIBLE¡¡£ü¡¡WS_BORDER¡¡£ü¡¡WS_TABSTOP£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡11£»¡¡13£»¡¡216£»¡¡82£»¡¡WS_EX_CLIENTEDGE
Ò²¿ÉÒÔÔÚ³ÌÐòÖÐʹÓÃCreateWindowsExº¯ÊýÈçÏ´´½¨£º
szClass¡¡¡¡¡¡¡¡¡¡db¡¡¡¡¡¨SysListView32¡¨£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡£¡£
invoke¡¡¡¡¡¡¡¡¡¡¡¡CreateWindowEx£»WS_EX_CLIENTEDGE£»offset¡¡szClass£»NULL£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LVS_REPORT¡¡or¡¡WS_CHILD¡¡or¡¡WS_VISIBLE¡¡or¡¡WS_BORDER£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡11£»13£»216£»82£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hWinMain£»IDC_LISTVIEW£»hInstance£»NULL
¡¡
ÉÏÊöÁ½ÖÖ·½·¨µÄʹÓÃЧ¹ûÊÇÒ»ÑùµÄ£¬³ÌÐò´úÂëÖеÄWS_CHILDµÈÒÔWS¿ªÍ·µÄ·ç¸ñÊÇ´°¿ÚµÄͨÓ÷ç¸ñ£¬¶øLVS_REPORT·ç¸ñÊÇÁбíÊÓͼ¿Ø¼þµÄÌØÓзç¸ñ¡£ÓÉÓÚ´ó¶àÊýʱºòͨÓÿؼþ¶¼Êǵ±×ö×Ó´°¿Ú´´½¨µÄ£¬ËùÒÔ´°¿Ú·ç¸ñÖбØÐë°üÀ¨WS_CHILD·ç¸ñ¡£ÁíÍ⣬ʹÓÃCreateWindowEx´´½¨µÄʱºò±ØÐëÖ¸¶¨WS_VISIBLE·ç¸ñ£¬·ñÔò¿Ø¼þ²»»á±»ÏÔʾ£»¶øÔÚ¶Ô»°¿ò×ÊÔ´Öж¨ÒåµÄʱºò£¬ÏµÍ³×ÜÊÇĬÈϼÓÉÏWS_VISIBLE·ç¸ñ£¬ËùÒÔÓÐûÓÐWS_VISIBLEÊÇÎÞËùνµÄ¡£
³ýÁ˵÷ÓÃCreateWindowEx»òCreateWindowº¯ÊýÀ´´´½¨Í¨ÓÿؼþÍ⣬ijЩͨÓÿؼþµÄ´´½¨¿ÉÒÔʹÓÃһЩרÓõĺ¯Êý£¬ÕâЩº¯ÊýÆäʵÔÚÄÚ²¿¶¼µ÷ÓÃÁËCreateWindowEx£¬Ö»ÊÇÓÉÓÚ°ü×°ºóµÄº¯ÊýÊÇÁ¿Éí¶¨×öµÄ£¬Ê¹ÓÃÆðÀ´¸ü·½±ã¶øÒÑ¡£¾¹ý°ü×°µÄº¯ÊýÓУº
¡ñ¡¡¡¡¡¡CreateToolbarExº¯Êý¡ª¡ªÓÃÀ´´´½¨¹¤¾ßÀ¸¡£
¡ñ¡¡¡¡¡¡CreateStatusWindowº¯Êý¡ª¡ªÓÃÀ´´´½¨×´Ì¬À¸¡£
¡ñ¡¡¡¡¡¡CreateUpDownControlº¯Êý¡ª¡ªÓÃÀ´´´½¨¹ö¶¯Ìõ¿Ø¼þ¡£
ÁíÍ⣬ÓÐЩͨÓÿؼþ²¢Ã»ÓÐ×Ô¼ºµÄ´°¿ÚÀàÃû³Æ£¬»òÕß˵¸ù±¾¾Í²»ÊÇ´°¿ÚÀ࣬±ÈÈçÊôÐÔ±í¸ñºÍÊôÐÔÒ³¿Ø¼þÊÇ»ùÓÚÏîÄ¿Áбí¿Ø¼þ£¨Table¡¡Control£©µÄ£¬DragList¿Ø¼þÊÇ»ùÓÚÏÂÀʽÁбí¿òµÄ£¬ËüÃÇÊÇÆäËû¿Ø¼þµÄÀ©Õ¹£»¶øͼÏñÁбí¿Ø¼þ±¾ÉíÊÇÒ»·ùͼÏñ¶ø²»ÊÇ´°¿ÚÀà¡£´´½¨ÕâЩ¿Ø¼þµÄʱºò£¬ÓÉÓÚÎÞ·¨ÓÃÀàÃûÀ´Ö¸¶¨ËüÃÇ£¬ËùÒÔÎÞ·¨Ê¹ÓÃCreateWindowExº¯ÊýÀ´´´½¨£¬±ØÐëʹÓÃÏÂÃæÕâЩרÓõĴ´½¨º¯Êý£º
¡ñ¡¡¡¡¡¡PropertySheetº¯Êý¡ª¡ªÓÃÀ´´´½¨ÊôÐÔ±í¸ñ¡£
¡ñ¡¡¡¡¡¡CreatePropertySheetPageº¯Êý¡ª¡ªÓÃÀ´´´½¨ÊôÐÔÒ³¡£
¡ñ¡¡¡¡¡¡ImageList_Createº¯Êý¡ª¡ªÓÃÀ´´´½¨Í¼ÏñÁÐ±í¡£
¡ñ¡¡¡¡¡¡MakeDragListº¯Êý¡ª¡ªÓÃÀ´´´½¨DragList¿Ø¼þ¡£
ÔÚʹÓÿؼþʱҪÀμǵÄÊÇ£º´ó²¿·ÖµÄ¿Ø¼þÊÇ´°¿Ú£¬ËüÃÇÊÇÌØÊâµÄ´°¿Ú£¬ËùÒÔËùÓÐÊÊÓÃÓÚ´°¿ÚµÄ¸ÅÄ¿ÉÒÔʹÓÃÔڿؼþÉÏ£¬°üÀ¨´´½¨ÓëʹÓõķ½·¨£¬ºÍ¸¸´°¿ÚµÄͨÐÅ·½Ê½¼°ÄÚ²¿µÄ¹¤×÷ÔÀíµÈ¡£
3¡£¡¡Í¨ÓÿؼþºÍ¸¸´°¿ÚÖ®¼äµÄͨÐÅ
µ±ÔÚ¶Ô»°¿òÖÐʹÓÃ×Ó´°¿Ú¿Ø¼þʱ£¬¸¸´°¿Úͨ¹ýSendMessageº¯Êý·¢ËÍ¿ØÖÆÏûÏ¢À´¹ÜÀí×Ó´°¿Ú¿Ø¼þ£¬¶ø×Ó´°¿Ú¿Ø¼þͨ¹ý·¢ËÍWM_MAND»òWM_NOTIFYÏûÏ¢À´½«Óû§µÄ¶¯×÷֪ͨ¸¸´°¿Ú¡£
ͨÓÿؼþµÄͨÐÅ·½·¨ºÍ×Ó´°¿Ú¿Ø¼þʹÓõķ½·¨ÊÇÒ»ÑùµÄ¡ª¡ª¸¸´°¿Ú·¢ËÍ¿ØÖÆÏûÏ¢À´¹ÜÀíͨÓÿؼþ£¬²»Í¬ÀàÐ͵ÄͨÓÿؼþʹÓò»Í¬µÄ¿ØÖÆÏûÏ¢£¬Èç״̬À¸µÄ¿ØÖÆÏûÏ¢¶¼ÊÇÒÔSB_¿ªÍ·µÄ£¨Status¡¡BarµÄËõд£©£»TreeView¿Ø¼þµÄ¿ØÖÆÏûÏ¢ÊÇÒÔTVM_¿ªÍ·µÄ£¨Tree¡¡View¡¡MessageµÄËõд£©£»ListView¿Ø¼þµÄ¿ØÖÆÏûÏ¢ÊÇÒÔLVM_¿ªÍ·µÄ£¨List¡¡View¡¡MessageµÄËõд£©¡£²»Í¬µÄÏûÏ¢¶¼ÓÐÌض¨µÄÓ÷¨ºÍ²ÎÊý£¬ÔÚʹÓÃʱÐèÒª²éÔÄWin32º¯ÊýÊֲᡣ
ͨÓÿؼþҲͨ¹ý·¢ËÍ֪ͨÏûÏ¢À´ºÍ¸¸´°¿ÚͨÐÅ£¬²»Í¬Í¨ÓÿؼþʹÓõÄ֪ͨÏûÏ¢¿ÉÄÜÓÐËù²»Í¬£¬¹éÄÉÆðÀ´Çé¿öÈçÏ£º
¡ñ¡¡¡¡¡¡¹¤¾ßÀ¸¿Ø¼þʹÓÃWM_MANDÏûÏ¢½«°´Å¥¶¯×÷֪ͨ¸¸´°¿Ú£¬ÕâÊÇΪÁ˱ãÓںͲ˵¥¡¢¼ÓËÙ¼üʹÓÃͬһ·Ý´úÂëÀ´´¦ÀíÓû§°´Ï¹¤¾ßÀ¸°´Å¥µÄ¶¯×÷¡£
¡ñ¡¡¡¡¡¡¹ö¶¯Ìõ¿Ø¼þʹÓÃWM_VSCROLL»òÕßWM_HSCROLLÏûϢ֪ͨ¸¸´°¿Ú£¬ºÍ´°¿Ú×ÔÉí¹ö¶¯ÌõʹÓõÄÏ