Bonjour à tous,
Dans ma DLL, un programme appelant me passe le hwnd d'une zone et je dois rajouter des composants avec Qt. Pour se faire, j'utilise QWinWidget du package qtwinmigrate.
Je commence par instancier l'application Qt (comme dans l'exemple sur le site)
Puis ma fonction qui va remplir la zone de composants
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpvReserved*/ ) { static bool ownApplication = FALSE; if ( dwReason == DLL_PROCESS_ATTACH ) ownApplication = QMfcApp::pluginInstance( hInstance ); if ( dwReason == DLL_PROCESS_DETACH && ownApplication ) delete qApp; return TRUE; }
Les problèmes commencent à arriver lorsque les éléments Qt que j'intègre possèdent de la transparence. En effet, pour conserver le thème de l'application principale, pour le QLabel, j'ai mis un background transparent, et celui ci est rendu en noir...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void MaFonction(HWND hwndZone) { QWinWidget* pZone = new QWinWidget(hwndZone); QHBoxLayout *hbox = new QHBoxLayout( pZone ); QLabel *label = new QLabel( "Enter text:", pZone ); QLineEdit *edit = new QLineEdit( pZone ); hbox->addWidget( label ); hbox->addWidget( edit ); pZone->move( 0, 0 ); pZone->show(); }
Savez vous comment je peux y remédier ?
Merci beaucoup,
A bientôt
Partager