// this string is going to become the new combobox value soon but
// we need it to be done right now, otherwise the event handler
// could get a wrong value when it calls our GetValue()
- ::SetWindowText(GetHwnd(), value);
+ ::SetWindowText(GetHwnd(), value.wx_str());
{
wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, GetId());
return true;
}
+bool wxComboBox::MSWShouldPreProcessMessage(WXMSG *pMsg)
+{
+ // prevent command accelerators from stealing editing
+ // hotkeys when we have the focus
+ if (wxIsCtrlDown())
+ {
+ WPARAM vkey = pMsg->wParam;
+
+ switch (vkey)
+ {
+ case 'C':
+ case 'V':
+ case 'X':
+ case VK_INSERT:
+ case VK_DELETE:
+ case VK_HOME:
+ case VK_END:
+ return false;
+ }
+ }
+
+ return wxChoice::MSWShouldPreProcessMessage(pMsg);
+}
+
WXHWND wxComboBox::GetEditHWND() const
{
// this function should not be called for wxCB_READONLY controls, it is
Remove(from, to);
// Now replace with 'value', by pasting.
- wxSetClipboardData(wxDF_TEXT, (wxObject *)(const wxChar *)value, 0, 0);
+ wxSetClipboardData(wxDF_TEXT, (wxObject *)value.wx_str(), 0, 0);
// Paste into edit control
SendMessage(GetHwnd(), WM_PASTE, (WPARAM)0, (LPARAM)0L);