2012-04-19 46 views
0

對不起,標題有點模糊。使用windows.h,在鼠標單擊時從聊天框中刪除文本(C++)

基本上,我正在用C++編寫一個聊天程序並使用windows.h API。我有大部分程序工作,只是小事情無法正常工作。我有一個框讓用戶鍵入他們想要說的內容,並在該框中顯示「在此輸入文本」,以斜體顯示。我想設置它,以便用戶在該框中單擊時,這些單詞消失,用戶可以自由輸入。現在它已經設置好了,如果他們在框中點擊,它會跳到單詞「here」的末尾,他們必須手動刪除這些單詞。

有沒有簡單的方法來做到這一點?可能在創建框或文本時?或者我必須添加自己的邏輯才能完成這個任務?

連接的是我創建的代碼都箱,並在那裏我設置字體:

盒:

hwSendEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", "Enter Text Here", 
WS_CHILD|WS_VISIBLE, 2, 215, 790, 22, hwMain, 0, hInst, 0); 

字體:

chFont = CreateFont(12, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Tahoma"); 
SendMessage(hwSendEdit, WM_SETFONT, reinterpret_cast<WPARAM>(chFont), 0); 

感謝您的幫助,您可以提供。

回答

1

您需要回應該控件的WM_ACTIVATE消息。它有一個參數wParam,告訴你控制是否被激活或停用。如果它被激活,請檢查窗口文本以查看它是否與提示字符串相同;如果是這樣,請將字體恢復正常並使用SetWindowText來清除文本。如果它被停用,請使用GetWindowText來查看文本是否爲空,如果是,請將字體設置回斜體並替換您的提示字符串。