簡體   English   中英

MFC CEdit不會接受鍵盤輸入

[英]MFC CEdit won't take keyboard input

我有一個舊項目,需要在視圖中添加多行文本框。

我首先只是想在我的視圖類的onDraw函數中創建一個文本框,以在屏幕上放置一個文本框。 文本框的矩形一直閃爍。 我無法選擇它或執行任何操作。

視圖類是CView固有的。 該信息。 我從研究中得到的是CEdit通常添加到對話框類,但是我仍然可以將其添加到任何視圖。

CRect rect(100, 100, 300, 200);
CEdit test;
test.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | WS_HSCROLL | ES_MULTILINE | WS_VSCROLL, \
    rect, this, 1);

我對此完全陌生,在我進入所有句柄和消息傳遞之前,我只想簡單地創建一個文本框並在其中輸入一些文本即可。

謝謝您的幫助。

您可能不想在OnDraw中創建編輯控件。 實際上,除非您的視圖包含其他需要繪制的內容,否則可能根本不需要處理OnDraw。

當您擁有一個托管控件的視圖時,通常希望在視圖的OnCreate中創建該控件,因此它是在創建視圖自己的窗口(將成為控件的父窗口)之后但在顯示視圖窗口之前創建的(因此控件可以同時顯示)。

在這種情況下,視圖可能根本不需要處理繪圖。 它可能需要處理:

  1. 調整大小:調整控件的大小以適合視圖客戶區的新大小。
  2. focus:當視圖獲得焦點時,立即將焦點賦予控件。
  3. 命令:您通常想要處理類似以下內容的命令:
    • 從控件剪切/復制/粘貼
    • 將數據放入控件中(例如,來自文件)
    • 從控件中獲取數據(例如,保存到文件)
    • 設置控件的字體

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM