Ответы пользователя по тегу MFC
  • "Попытка выполнить неподдерживаемую операцию". В чём заключается проблема?

    maaGames
    @maaGames
    Погроммирую программы
    Ставь бряк в DoDataExchange. Скорее всего опять несоответствие ID контрола с тем, которое используется в коде.
    Ответ написан
    Комментировать
  • Фреймворки для MFC?

    maaGames
    @maaGames
    Погроммирую программы
    Рекомендую вот это. Платно. Относительно дорого. https://codejock.com/
    Если не ошибаюсь, именно у них MS купили часть бибьлиотеки для настройки Ленты(Ribbon) и прочих красивостей интерфейса. Очень много удобных и красивых контролов и дополнений, не просто цвет кнопки.
    Ответ написан
    2 комментария
  • Можно ли Встроить QT dialog в MFC CDialog?

    maaGames
    @maaGames Автор вопроса
    Погроммирую программы
    В общем, для диалога (или любого виджета) получаем виндовый HWND, после чего впихиваем его в имеющийся диалог методом 'HWND oldparent =SetParent( HWND child, HWND parent)'. После этого виджет становится дочерним окном стандартных виндусовских диалогов, в том числе MFC-шных (с точки зрения пользователя ведёт себя как обычный контрол диалога, т.е. визуальной разницы никакой, что и требовалось получить). Перед удалением диалога нужно для виджета вернуть родителя.

    #include <QtGui/5.12.6/QtGui/qpa/qplatformnativeinterface.h>
    
    QWindow * windowForWidget( const QWidget * widget )
    {
    	QWindow * window = widget->windowHandle();
    	if( window )
    		return window;
    
    	const QWidget * nativeParent = widget->nativeParentWidget();
    	if( nativeParent )
    		return nativeParent->windowHandle();
    
    	return nullptr;
    }
    
    HWND getHWNDForWidget( const QWidget * widget )
    {
    	QWindow * window = ::windowForWidget( widget );
    	if( window && window->handle() )
    	{
    		QPlatformNativeInterface * iface = QGuiApplication::platformNativeInterface();
    		return static_cast<HWND>(iface->nativeResourceForWindow( QByteArrayLiteral( "handle" ), window ));
    	}
    
    	return nullptr;
    }


    5e1585cb462c4267495335.png
    Ответ написан
    Комментировать
  • MFC C++ Как пользоваться таймером (на основе диалоговых окон)?

    maaGames
    @maaGames
    Погроммирую программы
    SetTimer
    KillTimer
    В MSDN есть примеры использования.
    Ответ написан
    Комментировать
  • Какова судьба MFC и C++?

    maaGames
    @maaGames
    Погроммирую программы
    MFC не самое удачное решение для разработки интерфейсов. ТЕм более, привязано исключительно к Windows. Я бы порекомендовал начать изучать QT. Сам я этого пока не сделал и разрабатываю desktop приложения именно с MFC...
    Ответ написан
    Комментировать