MFCÖж¨ÒåÈ«¾Ö±äÁ¿ºÍÈ«¾Öº¯ÊýµÄ·½·¨(¾«) ÏÂÔØ±¾ÎÄ

MFCÖж¨ÒåÈ«¾Ö±äÁ¿ºÍÈ«¾Öº¯ÊýµÄ·½·¨

ÕªÒª£º±¾ÎĶÔÔÚVisual C++6.0µÄMFC³ÌÐòÉè¼Æ¹ý³ÌÖУ¬Í¨¹ýʵÀýÐÎʽ£¬¸ø³öÁËÈýÖÖÈ«¾Ö±äÁ¿ºÍÈ«¾Öº¯ÊýµÄÈýÖÖ»ù±¾·½·¨¡£ ¹Ø¼ü´Ê£ºMFC£»È«¾Ö±äÁ¿£»È«¾Öº¯Êý

1 ÒýÑÔ

ÔÚ½ÌÊÚѧÉúʹÓÃVisual C++6.0ÖеÄMFC»ù±¾Ó¦ÓÃʱ£¬ÓÉÓÚMFCÖÆ×÷µÄ¹¤³ÌÓɺܶàÎļþ¹¹³É£¬Ëü²»ÄÜÏóÒ»°ãC++³ÌÐòÄÇÑùËæÒâÔÚÀàÍⶨÒåÈ«¾Ö±äÁ¿£¬ÄÇÑùÓÐʱ»áÔÚÔËÐгÌÐòʱ³ö ÏÖÎÊÌâ¡£ÔÚÈí¼þ¿ª·¢¹ý³ÌÖУ¬ÓÐʱÐèÒªÔÚ²»Í¬µÄÀàÖ®¼äÀûÓÃÈ«¾Ö±äÁ¿´«µÝÊý¾Ý£¬ ÀûÓÃÈ«¾Öº¯Êý´¦ÀíÏàͬÎÊÌ⣬¶øMFCûÓÐÌṩÀàËÆÆäËû¿ª·¢¹¤¾ßµÄÄ£¿é¹¦ÄÜ£¬Òò´ËÎÒÃÇÖ»µÃ×Ô¼ºÍê³É¡£Êµ¼ÊÉÏÓжàÖÖ·½·¨¿ÉÒÔʵÏÖ£¬ÕâÀï½éÉÜÈýÖÖ³£Óõķ½·¨¡£

2 ¶¨ÒåÒ»¸öÈ«¾ÖÀàµÄ¶ÔÏóÀ´ÊµÏÖ

ÆäʵÉú³ÉÕâ¸ö×Ô¶¨ÒåÀà¶ÔÏó£¬ÎÒÃÇ¿ÉÒÔÍêÈ«²ÎÕÕtheApp¶ÔÏóµÄÉú³É·½Ê½[1-2]£¬×Ô¶¨ÒåÒ»¸öCMyPublicDataµÄÈ«¾ÖÀࡣȻºóÉú ³ÉCMyPublicDataÈ«¾Ö¶ÔÏó£¬Í¨¹ý¶ÔÏóµ÷ÓÃÈ«¾Ö±äÁ¿¼°È«¾Öº¯Êý¡£ÊµÏÖ¹ý³ÌÈçÏ£º

(1)Ìí¼ÓÒ»¸öûÓлùÀàµÄÐÂÀ࣬ÉèÀàÃûÆðΪCMyPublicData£¬¿É³ÆÖ®Îª¹«ÓÃÀà¡£

µ¥»÷¡°Insert¡±²Ëµ¥Ïµġ°New Class¡±ÃüÁѡÔñ¡°Class type¡±Îª¡°Generic Class¡±£¬ÔÚ¡°Name¡±À¸ÖÐÌîÈëÀàÃû¡°CMyPublicData¡±£¬µ¥»÷¡°OK¡±£¬ÔòÐÂÀཨÁ¢Íê±Ï¡£ (2)´´½¨È«¾ÖµÄ±äÁ¿ÓëÈ«¾Öº¯Êý

ʵ¼ÊÉÏÊǶ¨ÒåCMyPublicDataÀàµÄpublicÊôÐԵijÉÔ±±äÁ¿ºÍ³ÉÔ±º¯Êý¡£ CMyPublicData.hµÄÄÚÈÝ£º

(3)°üº¬¹«ÓÃÀàµÄÍ·Îļþ£¬Ê¹¸÷¸öÀà¶¼ÄÜ·ÃÎÊËü

CMyPublicDataµÄÍ·ÎļþÓ¦°üº¬ÔÚÓ¦ÓóÌÐòÀàµÄÍ·ÎļþÖУ¬ÕâÑùÔÚÆäËüÀàÖÐÒýÓÃCMyPublicDataÀàʱ¾Í²»ÐèÒªÔÙ°üº¬ÁË¡£Èô Ó¦ÓóÌÐòÀàµÄÍ·ÎļþΪExample.h£¬ÆäÑùʽÈçÏ£º (4)ʹÓÃÈ«¾Ö±äÁ¿ºÍÈ«¾Öº¯Êý

¿ÉÔÚÕû¸ö¹¤³ÌÖУ¬ÀûÓÃMyPublicData.Public_xÐÎʽʹÓñäÁ¿£¬¿É¶à´Î¸³Öµ£¬¶à´Îµ÷Óã¬ÀûÓà MyPublicData.Public_f()ÐÎʽµ÷Óú¯Êý¡£¿ÉʵÏÖÁËÈ«¾Ö±äÁ¿ºÍÈ«¾Öº¯Êý¡£

3 ÀûÓÃÓ¦ÓóÌÐòÀàÖж¨ÒåʵÏÖ

ÓÃMFCÉú³ÉµÄ¹¤³ÌÖж¼ÓÐÒ»¸öÃûΪCxxxAppµÄÀ࣬ÆäÖÐxxxÒ»°ãΪӦÓóÌÐòÃû£¬Ëü¼Ì³ÐÁËCWinAppÀà¡£CxxxAppÀàÖ÷Òª½øÐÐ³Ì ÐòµÄ³õʼ»¯£¬Éú³ÉÎĵµ¡¢ÊÓͼ¶ÔÏóµÈ¹¤×÷¡£ÎÒÃÇ¿ÉÒÔ°ÑÐèҪȫ¾Ö·ÃÎʵıäÁ¿ºÍº¯Êý¶¨ÒåΪÕâ¸öÀàµÄ³ÉÔ±±äÁ¿ºÍ³ÉÔ±º¯Êý¡£ÓÉÓÚÎÒÃǺÜÈÝÒ×»ñµÃCxxxAppÀàµÄÖ¸ Õ룬ËùÒÔ¿ÉÒÔÔÚÎĵµ¡¢ÊÓͼ¡¢¶Ô»°¿òÒÔ¼°¸÷ÖÖ×Ô¶¨ÒåÀàÖзÃÎʵ½ËüÃÇ£¬´ïµ½ÓëÈ«¾Ö±äÁ¿ÀàËÆµÄЧ¹û¡£·ÃÎÊʱÓú¯Êý¡°AfxGetApp()¡±»ñµÃCxxxApp ÀàµÄÖ¸Õ룬Óá°AfxGetApp()->³ÉÔ±¡±·ÃÎʱäÁ¿»òº¯Êý[2-3]¡£ Àý£ºÔÚExample.hÍ·ÎļþÖУ¨Example.hΪӦÓóÌÐòÀàÍ·Îļþ£©

¶¨ÒåÔÚCTestAppÀàÖеıäÁ¿ºÍº¯Êý¿ÉÒÔÔÚÆäËüÀàÖб»·ÃÎÊ¡£±ÈÈçÔÚÊÓͼµÄijº¯ÊýÖÐÒª·ÃÎʱäÁ¿Public_xºÍº¯ÊýÕâÑù£¬±äÁ¿ Public_xºÍº¯ÊýPublic_f()¿ÉÒÔÊÓ×÷Ϊȫ¾ÖµÄ¡£

ÒÔÉÏÁ½ÖÖ·½·¨¿ÉʵÏÖµÄÈ«¾Ö±äÁ¿ºÍÈ«¾Öº¯ÊýµÄÔËÓá£Ëä±È½Ï¼òµ¥£¬µ«Ò²ÓÐȱµã£¬¶þÕß¶¼ÊǶ¨ÒåµÄ³ÉÔ±±äÁ¿ºÍ³ÉÔ±º¯Êý£¬ÔÚʹÓú¯Êýʱ£¬¶¼ÒªÒþʽµØ´«µÝ thisÖ¸Õë¡£ÕâÑù£¬ÓпÉÄܶÔÀàÖеijÉÔ±²»±ØÒªµÄÓ°Ïì¡£¶øµÚ¶þÖÖ·½·¨£¬Ã¿´Î¶¼ÐèÒª»ñȡӦÓóÌÐòÀàµÄÖ¸Õ룬ÕâÑù×ö±È½ÏÂé·³¡£ÔÙ¾ÍÊǰÑһЩÓëÓ¦ÓóÌÐòÀà±¾ÉíÎÞ ¹ØµÄ±äÁ¿ºÍº¯Êý·ÅÔÚÀïÃæ£¬Ê¹Õâ¸öÀà¿´ÉÏÈ¥¹Ö¹ÖµÄ£¬ÆÆ»µÁËÀàµÄ·â×°¡£

4 ÀûÓþ²Ì¬±äÁ¿ºÍ¾²Ì¬º¯ÊýʵÏÖ ¾²Ì¬±äÁ¿ºÍ¾²Ì¬º¯ÊýÓÐÈçÏÂÐÔÖÊ£º

ÈôÔÚÒ»¸öÀàÖÐÓùؼü×ÖstaticÉùÃ÷Êý¾Ý³ÉÔ±£¬ÔòÕâ¸öÊý¾Ý³ÉÔ±¾ÍÖ»´æÔÚÒ»¸ö¿½±´£¬ÎÞÂÛ¸ÃÀà´´½¨Á˶à

1

ÉÙ¸öʵÀý£¬ËüʼÖÕÖ»´æÔÚÒ»¸ö£¬¼´Ê¹¸ÃÀàµÄ ʵÀýÒ»¸öҲû´´½¨£¬ËüÒ²´æÔÚ¡£ ÈôÔÚÒ»¸öÀàÖÐÓùؼü×ÖstaticÉùÃ÷º¯Êý£¬¸Ãº¯Êý¿ÉÒÔÓá°ÀàÃû::º¯ÊýÃû¡±·½Ê½·ÃÎÊ£¬ÎÞÐèÒýÓøÃÀàµÄʵÀý£¬ÉõÖÁÕâ¸öÀàµÄʵÀý¿ÉÒÔ²»´æÔÚ¡£Àû ÓÃÕâ¸öÐÔÖÊʵÏÖµÄÈ«¾Ö±äÁ¿ºÍº¯ÊýʹÓÃÆðÀ´¾ÍºÜ·½±ãÁË¡£

ÖµµÃ×¢ÒâµÄÊÇ£¬È«¾Ö±äÁ¿ºÍÈ«¾Öº¯Êý×îºÃ¼¯Öзâ×°£¬²»ÒªÔÚÎĵµ¡¢ÊÓͼµÈÀàÄÚ²¿¶¨Ò壬ÕâÑùÓÃÆðÀ´²ÅÓÐÈ«¾ÖµÄ¸Ð¾õ¡£ ÀýÈ磺

(1)Ìí¼ÓÒ»¸öûÓлùÀàµÄÐÂÀ࣬ÀàÃûΪCMyPublicData¡£

µ¥»÷¡°Insert¡±²Ëµ¥Ïµġ°New Class¡±ÃüÁѡÔñ¡°Class type¡±Îª¡°Generic Class¡±£¬ÔÚ¡°Name¡±À¸ÖÐÌîÈëÀàÃû¡°CMyPublicData¡±£¬µ¥»÷¡°OK¡±£¬ÐÂÀཨÁ¢Íê±Ï¡£

(2)°üº¬¹«ÓÃÀàµÄÍ·Îļþ£¬Ê¹¸÷¸öÀà¶¼ÄÜ·ÃÎÊËü¡£

CMyPublicDataµÄÍ·ÎļþÓ¦°üº¬ÔÚÓ¦ÓóÌÐòÀàµÄÍ·ÎļþÖУ¬ÕâÑùÔÚÆäËüÀàÖÐÒýÓÃCMyPublicDataÀàʱ¾Í²»ÐèÒªÔÙ°üº¬ÁË¡£

Test.h:£¨Ó¦ÓóÌÐòÀàÍ·Îļþ£©

#include \°üº¬¹«ÓÃÀàÍ·Îļþ class CTestApp: public CWinApp {¡­¡­};

(3)ÔÚ¹«ÓÃÀàÖж¨ÒåÈ«¾Ö±äÁ¿ºÍÈ«¾Öº¯Êý£¬¾ùʹÓÃstaticÐÞÊΣ¬¾²Ì¬±äÁ¿»¹±ØÐëÔÚÀàÍⶨÒåºÍ³õʼ»¯¡£ CMyPublicData.h£¨¹«ÓÃÀàÍ·Îļþ£©

ÔÚ¹«ÓÃÀàÖжԾ²Ì¬±äÁ¿½øÐгõʼ»¯ºÍ¶¨Ò庯ÊýÌ壺 CMyPublicData.cpp£¨¹«ÓÃÀà³ÌÐòÎļþ£©

int CMyPublicData::Public_x = 0; //³õʼ»¯È«¾Ö±äÁ¿

void CMyPublicData::f(int y) //È«¾Öº¯Êý£¬ÕâÀï²»ÔÙ¼Óstatic (4)È«¾ÖÁ¿µÄʹÓÃ

¿ÉÀûÓÃCMyPublicData::Public_xºÍCMyPublicData::Public_f()ʹÓñäÁ¿ºÍº¯¾Å¡£ ÈçÔÚÊÓͼµÄijº¯ÊýÖзÃÎʱäÁ¿Public_xºÍº¯ÊýPublic_f()¡£ void CTestView::xxx(){

CMyPublicData::Public_x = 0; //·ÃÎʱäÁ¿Public_x CMyPublicData::Public_f(); //·ÃÎʺ¯ÊýPublic_f() ¡­¡­}

ÔÚÆäËüÀàÖзÃÎÊPublic_xºÍPublic_f()µÄ·½·¨Óë´ËÏàͬ¡£

(5)¼¸µã×¢Ò⣺ÓÉÓÚ¾²Ì¬Á¿¿É¶ÀÁ¢ÓÚÀà´æÔÚ£¬²»ÐèÒªÉú³ÉCPublicÀàµÄʵÀý£»¾²Ì¬Êý¾Ý³ÉÔ±µÄ¶¨ÒåºÍ³õʼ»¯±ØÐëÔÚÀàÍâ½øÐУ¬ÈçÀýÖÐ Public_xµÄ³õʼ»¯¡£ÓÉÓÚûÓÐÉú³ÉCPublicÀàµÄʵÀý£¬ËùÒÔËüµÄ¹¹Ô캯ÊýºÍÎö¹¹º¯Êý¶¼²»»á±»Ö´ÐУ¬ÔÚÀïÃæ×öʲô¹¤×÷¶¼Ã»ÓÐʲôÒâÒå¡£

×ÜÖ®£¬ÓÃûÓÐʵÀýµÄÀà¹ÜÀíÈ«¾ÖÁ¿ÊÇÒ»¸ö²»´íµÄÑ¡Ôñ£¬Ëü¾ßÓм¯ÖйÜÀí£¬Ê¹Ó÷½±ãµÄºÃ´¦¡£

5 ½áÊøÓï

´ÓÑϸñÒâÒåÉϽ²£¬ÒÔÉÏÕâÖÖ±äÁ¿ºÍº¯Êý²¢²»ÊÇÈ«¾ÖµÄ¡£Ö»ÊÇͨ¹ý¶¨ÒåÀàÖеijÉÔ±±äÁ¿ºÍ³ÉÔ±º¯Êý·½Ê½ÊµÏÖ¡£µ±È»£¬³ý·ÇÔÚ±ØÒªÇé¿öÏ£¬È«¾ÖÁ¿»¹ÊÇÉÙÓà ΪºÃ£¬Ò»¸öºÃµÄ±à³ÌÕß¾ö²»»áËæÒâÀÄÓÃÈ«¾ÖÁ¿µÄ£¬Ò»¸ö·â×°×öµÃ²»ºÃµÄ³ÌÐò£¬ÔÚÐÞ¸Äά»¤Ê±´øÀ´Ò»Ð©Âé·³¡£

2