У меня довольно сложная проблема для объяснения, но я буду стараться изо всех сил. Я сделал собственную реализацию перетаскивания в приложение на основе Win32 GUI. Из-за ограничений программы я не могу использовать правильный механизм перетаскивания OLE. Хорошо, я сделал свой собственный с отслеживанием клавиш мыши, и это работает так. Единственная проблема, которую я не могу решить сейчас - это чертовски неверный (заштрихованный круг) - курсор IDC_NO.
Мое окно считает, что его нельзя отменить, и меняет курсор на недействительный, когда что-то вот-вот упадет. Я попробовал все, чтобы изменить это, но он настаивает на том, чтобы остаться там.
case WM_SETCURSOR:
{
//SetSystemCursor(CopyCursor(LoadCursor(NULL, IDC_CROSS)), 32648);
//DestroyCursor();
SetCursor(LoadCursor(NULL, IDC_CROSS));
SetWindowLong(hwnd, DWL_MSGRESULT, TRUE);
return TRUE;
}
break;
Я даже пытался изменить значок вне переключателя сообщений, который запускается при каждом вызове функции обратного вызова. Это работало немного, но не хорошо. Как будто я устанавливаю его на курсор IDC_CROSS, но он возвращается обратно к IDC_NO.
Как мне избавиться от этого неверного курсора? Я хочу установить его в IDC_CROSS.
Или как я могу реализовать Drag-drop без использования OLE или MFC классов, чтобы сделать мое приложение перетаскиваемым и не отображать этот недопустимый курсор.
Довольно сложно, но спасибо, что уделили время, даже за то, что прочитали мой вопрос;)