MFC 학습용 노트 3 삽입점 커서(Caret) 추가
대상: 현재 문자의 위치를 표시하기 위해 이전 프로그램에 카드를 추가합니다.
1. MFC의 단일 문서 프로그램 프로젝트를 만들고 카트라고 이름을 짓고 다른 것은 필기 2와 같이 입력한 문자를 표시한다.
2. 두 변수를 만들어서 카드 생성 여부의 표지와 카드 위치를 저장한다.
논리적으로 보면 이것은 디스플레이와만 관련이 있기 때문에 문서가 아닌 보기에 세워야 한다.
클래스 CCaretView 정의에서(caretView.h) 쓰기 코드:
class CCaretView : public CView
{
protected: // create from serialization only
CCaretView();
DECLARE_DYNCREATE(CCaretView)
boolean Flag;//
CPoint CaretPosition;//
// Attributes
public:
CCaretDoc* GetDocument();
// Operations
클래스 CCaretView 구조 함수에서 Flag(
CaretPosition은 여기서 초기화할 필요가 없습니다):
4
CCaretView::CCaretView()
{
// TODO: add construction code here
Flag=false;// false, true, Caret
}
처리 카드Ondraw 함수에 코드 쓰기
void CCaretView::OnDraw(CDC* pDC)
{
CCaretDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if (!Flag)// Caret
{
TEXTMETRIC textmetric;//The TEXTMETRIC structure contains basic information about a physical font.
pDC->GetTextMetrics(&textmetric);//The GetTextMetrics function fills the specified buffer with the metrics for the currently selected font.
CreateSolidCaret(textmetric.tmAveCharWidth/8,textmetric.tmHeight);//Creates a solid rectangle for the system caret and claims ownership of the caret.
//The caret shape can be a line or block.
// tmHeight, tmAveCharWidth 1/8
CaretPosition.x=CaretPosition.y=0;// 0, ,
SetCaretPos(CaretPosition);//Sets the position of the caret.
ShowCaret();//Shows the caret on the screen at the caret’s current position.
Flag=true;// ,
}
HideCaret();//
pDC->TextOut(0,0,pDoc->StringData);// StringData
CSize charsize=pDC->GetTextExtent(pDoc->StringData);// , !
CaretPosition.x=charsize.cx;//
SetCaretPos(CaretPosition);//
ShowCaret();//
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.