»áÔ±£º ÃÜÂ룺 ¡¡Ãâ·Ñ×¢²á | Íü¼ÇÃÜÂë | »áÔ±µÇ¼ ÍøÒ³¹¦ÄÜ£º ¼ÓÈëÊÕ²Ø ÉèΪÊ×Ò³ ÍøÕ¾ËÑË÷  
 °²È«¼¼Êõ¼¼ÊõÎĵµ
  ¡¤ °²È«ÅäÖÆ
  ¡¤ ¹¤¾ß½éÉÜ
  ¡¤ ºÚ¿Í½Ìѧ
  ¡¤ ·À»ðǽ
  ¡¤ Â©¶´·ÖÎö
  ¡¤ ÆƽâרÌâ
  ¡¤ ºÚ¿Í±à³Ì
  ¡¤ ÈëÇÖ¼ì²â
 °²È«¼¼ÊõÂÛ̳
  ¡¤ °²È«ÅäÖÆ
  ¡¤ ¹¤¾ß½éÉÜ
  ¡¤ ·À»ðǽ
  ¡¤ ºÚ¿ÍÈëÇÖ
  ¡¤ Â©¶´¼ì²â
  ¡¤ Æƽⷽ·¨
  ¡¤ É±¶¾×¨Çø
 °²È«¼¼Êõ¹¤¾ßÏÂÔØ
  ¡¤ É¨Ã蹤¾ß
  ¡¤ ¹¥»÷³ÌÐò
  ¡¤ ºóÃÅľÂí
  ¡¤ ¾Ü¾ø·þÎñ
  ¡¤ ¿ÚÁîÆƽâ
  ¡¤ ´úÀí³ÌÐò
  ¡¤ ·À»ðǽ
  ¡¤ ¼ÓÃܽâÃÜ
  ¡¤ ÈëÇÖ¼ì²â
  ¡¤ ¹¥·ÀÑÝʾ
¼¼ÊõÎĵµ > VCÎĵµ > ´°Ìå½çÃæ
VCϱà³ÌʵÏÖ3DÎÄ×Ö
·¢±íÈÕÆÚ£º2003-03-16 00:00:00×÷ÕߣºÀ ³ö´¦£º  

??ÌáÆð3DÎÄ×ÖÖÆ×÷£¬²»ÉÙÈË»áÂíÉÏÏëµ½3D MAXµÈһЩרÃŵÄ3άÖÆ×÷¹¤¾ß£¬¼´Ê¹Ñ¡ÓÃVCÒÔ±à³ÌµÄÊÖ¶ÎÀ´ÊµÏÖÒ²¶àÊǼÙÊÖÓÚOpenGLͼÐοª·¢¿âÀ´Íê³É¡£ÊìϤOpenGL¿ª·¢µÄ±à³ÌÈËÔ±Ò»¶¨¶ÔÆä³õʼ»¯¡¢²ÄÖÊÒÔ¼°µÆ¹âµÄäÖȾµÈһϵÁз³Ëö¶øÓÖ±ØÒªµÄ±à³Ì¹ý³ÌÉîÓид¥¡£ËäȻͨ¹ýÒÔÉϵÄÊֶοÉÒÔ²úÉú³ö°üÀ¨3DÎÄ×ÖÔÚÄÚµÄÖʸÐÏ൱ǿµÄ3άͼÐΣ¬µ«Èç¹û³ÌÐò½öÐèÒª²úÉú²»ºÜ¸´ÔÓµÄ3DÎÄ×Ö£¬¶ø²ÉÓÃOpenGLȥʵÏÖδÃâÏԵôó²ÄСÓá£ÆäʵÔÚÒªÇ󲻺ܿÁ¿ÌµÄÇé¿öÏ£¬ÍêÈ«¿ÉÒÔͨ¹ýMFCÌṩµÄCFontÀàÖÆ×÷³ö²ã´Î¸Ð½ÏÇ¿µÄ3DÎÄ×Ö£¬ÆäʵÏÖ¹ý³ÌÒª±ÈOpenGL¼òÁ·µÃ¶à¡£

??ʵÏÖÔ­Àí

??¼ÆËã»úÆÁÄ»ÊÇƽÃæ¶þάµÄ£¬ÎÒÃÇÖ®ËùÒÔÄÜÐÀÉ͵½ÕæÈçʵÎï°ãµÄÈýάͼÏñ£¬ÊÇÒòΪÏÔʾÔÚ¼ÆËã»úÆÁÄ»ÉÏʱɫ²Ê»Ò¶ÈµÄ²»Í¬¶øʹÈËÑÛ²úÉúÊÓ¾õÉϵĴí¾õ£¬¶ø½«¶þάµÄ¼ÆËã»úÆÁÄ»¸Ð֪ΪÈýάͼÏñ¡£»ùÓÚÉ«²ÊѧµÄÓйØ֪ʶ£¬ÈýάÎïÌå±ßÔµµÄ͹³ö²¿·ÖÒ»°ãÏÔ¸ßÁÁ¶ÈÉ«£¬¶ø°¼ÏÂÈ¥µÄ²¿·ÖÓÉÓÚÊܹâÏßµÄÕÚµ²¶øÏÔ°µÉ«¡£ÕâÒ»ÈÏʶ±»¹ã·ºÓ¦ÓÃÓÚÍøÒ³»òÆäËûÓ¦ÓÃÖж԰´Å¥¡¢3DÏßÌõµÄ»æÖÆ¡£¶ÔÓÚ±¾ÎÄËùÒª»æÖƵÄ3DÎÄ×ÖͬÑùÒ²ÊÊÓ㬼´ÔÚԭʼλÖÃÏÔʾ¸ßÁÁ¶ÈÑÕÉ«£¬¶øÔÚ×óÏ»òÓÒÉϵÈλÖÃÓõÍÁÁ¶ÈÑÕÉ«¹´ÀÕ³öÆäÂÖÀª£¬ÕâÑùÔÚÊÓ¾õÉϱã»á²úÉú3DÎÄ×ÖµÄЧ¹û¡£¾ßÌåʵÏÖʱ£¬¿ÉÓÃÍêÈ«Ò»ÑùµÄ×ÖÌåÔÚ²»Í¬µÄλÖ÷ֱð»æÖÆÁ½¸ö²»Í¬ÑÕÉ«µÄ2DÎÄ×Ö£¬Ö»ÒªÊ¹Á½¸öÎÄ×ÖµÄ×ø±êºÏÊÊ£¬¾ÍÍêÈ«¿ÉÒÔÔÚÊÓ¾õÉϲúÉú³ö²»Í¬Ð§¹ûµÄ3DÎÄ×Ö¡£

??¾ßÌåʵÏÖ

??ÔÚʵÏÖ3DÎÄ×Öʱһ°ã²»Ê¹ÓÃȱʡµÄ×ÖÌåÉèÖ㬶øÊÇͨ¹ý¶Ô×ÖÌåµÄÉèÖöøʹ²úÉúµÄ3DÎÄ×ÖÔÚÊÓ¾õÉϸüÃÀ¹Û¡£ÔÚʹÓÃCFontÀàʱ£¬Ê×ÏÈҪͨ¹ýÆä³ÉÔ±º¯ÊýCreateFontIndirect¸ù¾ÝÔ¤ÏÈÉ趨ºÃµÄLOGFONT½á¹¹À´³õʼ»¯CFont¶ÔÏó£º

CFont m_font;

¡­¡­

m_font.CreateFontIndirect(&lf);

??Æä²ÎÊýΪһ¸öÖ¸ÏòLOGFONT½á¹¹µÄÖ¸Õë¡£LOGFONT½á¹¹Ö÷Òª¶¨ÒåÁË×ÖÌåµÄÊôÐÔ£¬Æ䶨Òå¿Éͨ¹ýMSDN°ïÖú²éµ½£º

typedef struct tagLOGFONT {

LONG lfHeight;

//×Ö·û×ÖÌå¸ß¶È

LONG lfWidth; //×Ö·ûƽ¾ù¿í¶È

LONG lfEscapement;

//Îı¾ÐÐÄæʱÕëÐýת½Ç¶È

LONG lfOrientation; //×ÖÌå½Ç¶È

LONG lfWeight; //×ÖÌå´Öϸ³Ì¶È

BYTE lfItalic; //Çãб

BYTE lfUnderline; //Ï»®Ïß

BYTE lfStrikeOut; //ɾ³ýÏß

¡­¡­

} LOGFONT;

??ÔÚ¶ÔÆä½øÐÐÉèÖÃʱ£¬lfOutPrecision¡¢lfClipPrecision¡¢lfQuality ÒÔ¼°lfPitchAndFamilyÕ⼸¸ö³ÉÔ±±äÁ¿Ò»°ã¿ÉÈçÏÂÉèÖöøÎÞÐè¸Ä¶¯£º

LOGFONT lf;

//lf¶¨Òå×ÖÌåÊôÐÔ

lf.lfOutPrecision= OUT_STROKE_PRECIS;

lf.lfClipPrecision= CLIP_STROKE_PRECIS;

lf.lfQuality = DRAFT_QUALITY;

lf.lfPitchAndFamily= VARIABLE_

PITCH|FF_MODERN;

??¶ÔÓÚÆäËûµÄ³ÉÔ±±äÁ¿ÔòÒª¸ù¾Ýʵ¼ÊÐèÇó½øÐоßÌåµÄÉ趨¡£ÀýÈ磬¶ÔÓÚ±¾ÎÄÒªÏÔʾµÄûÓÐÏ»®ÏߺÍɾ³ýÏß²¢ÇÒûÓÐÇãб´¦ÀíµÄ´ÖÌåÓ×Ô²ºº×Ö£¬¿ÉÒÔ²ÉÈ¡ÈçÏÂÉèÖÃ:

lf.lfHeight = 50;

lf.lfWidth = 0;

lf.lfEscapement = 0;

lf.lfOrientation = 0;

lf.lfWeight = FW_HEAVY;

lf.lfItalic = FALSE;

lf.lfUnderline = FALSE;

lf.lfStrikeOut = FALSE;

lf.lfCharSet = GB2312_CHARSET; strcpy(lf.lfFaceName,¡°Ó×Ô²¡±);

??ͬÆäËûʹÓÃCDC»æͼÀà½øÐлæͼµÄ³ÌÐòÀàËÆ£¬¶Ô×ÖÌå½øÐлæÖÆ´¦ÀíÒ²ÊÇÔÚÊÓÀàµÄOnDraw()º¯ÊýÖÐÍê³ÉµÄ¡£Ê×ÏÈÐèҪѡÔñÇ°ÃæÉ趨ºÃµÄ×ÖÌ壬ÓÉÓÚ3DÎÄ×ÖµÄÏÔʾÊÇ¿¿Á½²ã£¨ÉõÖÁ¸ü¶à²ã£©ÎÄ×ֵĵþ¼Ó¶ø³É£¬Òò´ËÐèÒª²¢½«Æä±³¾°É趨͸Ã÷£¬·ñÔò½«½öÔÚÎÄ×ÖµÄÂÖÀª´¦ÓÐ3DЧ¹û£¬¶øÎÄ×ÖÄÚ²¿ÈÔÊÇƽÃæµÄ£º

CFont* pOldFont = (CFont*)pDC->SelectObject(&m_font);

pDC->SetBkMode(TRANSPARENT);

??ÔÚ´ËΪÁË˵Ã÷Ô­Àí½öÑ¡ÔñÁËÁ½²ãÎÄ×Ö½øÐеþ¼Ó£¬¿Éͨ¹ýAPIº¯ÊýGetSysColor»ñµÃµ±Ç°ÏµÍ³µÄÈýά¸ßÁÁ¶ÈÉ«ºÍÈýάµÍÁÁ¶ÈÉ«£¬²¢¶Ô×ÖÌå½øÐÐÉèÖã¬ÓÉÓÚ3άÎÄ×ÖÊÇÎÄ×ÖÔÚÇ°£¬ÒõÓ°ÔÚºó£¬ËùÒÔÐèÒªÏȶÔÒõÓ°²¿·Ö½øÐлæÖÆ£º

pDC->SetTextColor(::GetSysColor(COLOR_3DDKSHADOW));

pDC->TextOut(10,10,sTemp); //sTempΪ´ýÏÔʾÎÄ×Ö

??ΪÁËÏÔʾ³ö3άЧ¹û£¬ÐèÒªÔÚÆäÉϸ²¸ÇÉÏÒ»²ã¸ßÁÁ¶ÈÎÄ×Ö£¬ÏÔÈ»×ø±ê²»ÄÜÈÔÊÇ(10,10)£¬·ñÔòÏÔʾ³öµÄÎÄ×ÖÈÔÊÇ2άµÄ¡£Ò»°ã¿Éͨ¹ý´í¿ªÒ»Á½¸öÏñËØÀ´´ïµ½²»Í¬¹âԴλÖõÄ3DÎÄ×ÖЧ¹û£¬±ÈÈçÔڴ˾ÍÊÇÔÚԭλÖÃÏòÓÒÉÏÒƶ¯ÁË3¸öÏñËØ£¬¿Éͨ¹ýÔÚƽÃæÒƶ¯Êʵ±µÄ¾àÀëÀ´¿ØÖÆ3DЧ¹ûµÄÉî¶È£º

pDC->SetTextColor(::GetSysColor(COLOR_3DHILIGHT));

pDC->TextOut(13,7,sTemp);

?ÁíÍ⣬»¹¿ÉÒÔͨ¹ýÉèÖ÷¾¶¶ÔÏóÀ´¶ÔÆÕͨµÄ3DÎÄ×Ö½øÐÐÂÖÀª¹´ÀÕ£¬Ê¹Ö®¾ß±¸ÌØÊâµÄ3DЧ¹û£º

pDC->BeginPath(); //¿ªÊ¼Â·¾¶

pDC->TextOut(13,7,sTemp,19);

//Ïò·¾¶Êä³öºº×Ö

pDC->EndPath(); //½áÊø·¾¶

pDC->SetPolyFillMode(WINDING); //Ìî³ä·¾¶

pDC->StrokeAndFillPath(); //»æÖÆ·¾¶Íâ¹Û¡¢ÉèÖÃÌî³äģʽ

??½áÊøÓï

??±¾ÎÄͨ¹ý¶ÔCFontÀàºÍCDC»æͼÀàµÄʹÓ㬽áºÏÉ«²ÊѧµÄÓйØ֪ʶ£¬³É¹¦µØÔÚVCÏÂÒÔ¼òµ¥µÄ´úÂëʵÏÖÁËЧ¹û±È½ÏºÃµÄ3άÁ¢ÌåÎÄ×Ö¡£CFontÀà¶Ô×ÖÌå¿ØÖƵÄÄÜÁ¦»¹ÊǺÜÇ¿µÄ£¬Í¨¹ý¶ÔCFontÀàµÄÉîÈëÑо¿£¬¿É¶Ô×ÖÌåµÄÏÔʾ×ö³ö¸ü¼ÓÍ걸µÄ¿ØÖÆ¡£

£¨±¾ÎÄËùÊöËã·¨ÔÚWindows 98Ï£¬ÓÉMicrosoft Visual C++ 6.0±àÒëͨ¹ý£©

¡¾·µ»Ø¶¥²¿¡¿ ¡¾´òÓ¡±¾Ò³¡¿ ¡¾¹Ø±Õ´°¿Ú¡¿

¹ØÓÚÎÒÃÇ / ¸øÎÒÁôÑÔ / °æȨ¾Ù±¨ / Òâ¼û½¨Òé / ÍøÕ¾±à³ÌQQȺ   
Copyright ©2003- 2024 Lihuasoft.net webmaster(at)lihuasoft.net ¼ÓÔØʱ¼ä 0.0014