日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mfc编程 孙鑫_MFC文本编程——孙鑫第五课

發布時間:2024/1/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mfc编程 孙鑫_MFC文本编程——孙鑫第五课 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.創建并顯示插入符

(1)根據字體的大小繪制插入符“

CClientDC dc(this);

TEXTMETRICA tm;

dc.GetTextMetrics(&tm);

CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);//根據字體大小創建插入符

ShowCaret();

(2)繪制圖形插入符“

bitmap.LoadBitmap(IDB_BITMAP1);

CreateCaret(&bitmap);

ShowCaret();

3.顯示文本:(OnDraw函數中)

(1)CString str="各種猥瑣的東西都往東南枝上掛有木有!";

pDC->TextOut(0,0,str);

(2)使用LoadString()加載字符串

在stringTable新建一個字符串,設置ID為IDS_Shen,但是筆者在編寫是遇到一個問題:

error RC2151 : cannot reuse string constants, 61446(0xF006) - "(##########,##########)" already defined. Cannot add 61446(0xF006) - "一未命名文件".

搜索了下,原來是是在發布的時候,使用Release版本,Static library編譯時,MFC中afxres.h中61446已竟被使用,出現同一ID被兩次使用。

所以,將自己寫的那段資源ID改成比61446大些問題就解決了。

4.創建路徑層

//路徑層

CSize sz=pDC->GetTextExtent(str);

pDC->BeginPath();

pDC->Rectangle(0,0,sz.cx,sz.cy);

pDC->EndPath();

pDC->SelectClipPath(RGN_AND);//創建剪切區域,有5中模式

5.輸入文本:

void CTextView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{

// TODO: Add your message handler code here and/or call default

CClientDC dc(this);

TEXTMETRICA tm;

dc.GetTextMetrics(&tm);

if(0x0d==nChar)//回車鍵

{

M_Str.Empty();

PointPos.y+=tm.tmHeight;

}

else if(0x08==nChar)//退格鍵

{

COLORREF clr=dc.GetTextColor();

dc.SetTextColor(dc.GetBkColor());

//M_Str=M_Str.Left(M_Str.GetLength()-1);

dc.TextOut(PointPos.x,PointPos.y,M_Str);

M_Str=M_Str.Left(M_Str.GetLength()-1);

dc.SetTextColor(clr);

}

else

{

M_Str+=nChar;

}

CSize sz=dc.GetTextExtent(M_Str);

CPoint pt;

pt.x=PointPos.x+sz.cx;

pt.y=PointPos.y;

SetCaretPos(pt);

dc.TextOut(PointPos.x,PointPos.y,M_Str);

CView::OnChar(nChar, nRepCnt, nFlags);

}

總結

以上是生活随笔為你收集整理的mfc编程 孙鑫_MFC文本编程——孙鑫第五课的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。