| |
|
|
Uwe ''Pascal'' Niemeier | je bins encore
suis sur cet Problem gestoßen: si je chez Début de peinture cela Handle eines DeviceContext angebe, qui aucun Dialogelement zugeordnet ist, bekomme je chez Einsatz qui meisten Gafikbefehle qui annonce cette Befehl mets un la fenêtre vorraus. qui entsprechenden API-Gegenstücke laisser sich dagegen problemlos verwenden. qui gleiche annonce gibts oui aussi, si on dans qui SpeicherBitmap zeichnen veux et aucun angelegt hat ; sitzt là irgendwo ne entsprechende Sicherheitsüberprüfung im Weg? car si je seulement un Contrôle brauche, pouvoir qui Einsatz des DCs doch eigentlich keinen Sinn, weil je ensuite juste cela Contrôle-Handle einsetzen peux. KompilierenMarqueSéparationwindow 10,10-500,500
$H Windows.ph
------------------Geht
var dlg&=create(dialog,%hwnd,Test,100,100,300,300)
var DC1&=~GetDC(dlg&)
startpaint DC1&
textcolor 1,255
drawtext 40,0,Hallo
endpaint
------------------Geht nicht
var DC2&=~CreateCompatibleDC(%hdc)
startpaint DC2&
textcolor 1,255
drawtext 40,0,Hallo
endpaint
| 14.02.2009 ▲ | |
|
|
|
|
Matthias Arlt | allô Pascal,
Komisch, chez mir funktioniert eigentlich beides pas so droite zufriedenstellend. je verwende daher folgenden, bisher toujours zuverlässigen Workarround. et verwende den DC dabei eigentlich seulement pour Neuzeichnen... KompilierenMarqueSéparationhdc&=~GetDC(dlg&)
hdc2&=~CreateCompatibleDC(hdc&)
b&=~CreateCompatibleBitmap(hdc&,width(dlg&),height(dlg&))
~SelectObject(hdc2&,b&)
startpaint dlg&
...
endpaint
~BitBlt(hdc2&,0,0,width(dlg&),height(dlg&),hdc&,0,0,$CC0020)
~DeleteObject(b&)
setautopaint 1
while...
if %wmPaint
setautopaint 2 ansonsten permanentes neuzeichnen...
~BitBlt(hdc&,0,0,width(1&),height(1&),hdc2&,0,0,$CC0020)
~RedrawWindow(dlg&,0,0,$400+$1+$80+$100+$2)
setautopaint 1
endif
wend
~DeleteDC(hdc2&)
~DeleteDC(hd n class=s2>)
|
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 14.02.2009 ▲ |
|
|
|
|
RGH | Uwe Pascal Niemeier
je bins encore qui gleiche annonce gibts oui aussi, si on dans qui SpeicherBitmap zeichnen veux et aucun angelegt hat ; sitzt là irgendwo ne entsprechende Sicherheitsüberprüfung im Weg?
oui, qui Fehlermeldung taucht toujours ensuite sur, si qui DC, sur dem quoi gezeichnet volonté soll, la valeur 0 hat. dans diesem speziellen Dall schläft STARTPAINT wohl fehl. (aussi pour STARTPAINT hat qui Systemvariable %HDC den Werte des aktuellen DC. dans diesem le cas ist il réellement 0.) qui Grund ist wohl, dass STARTPAINT den paramètre aus Je ne erkennbaren Trouvé ici pas comme une DC erkennt, mais pour un Fensterhandle hält.
Salut Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 14.02.2009 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Roland!
je hoffe doch, qui du cela chez Gelegenheit änderst? Comme je le disais, sonst serait qui Possibilité den DC vorzugeben oui keinen Sinn faire. Handles comme paramètre Gabs oui déjà longtemps.
SeeYou Pascal |
|
|
| |
|
|
|
| demain! Hat cela Ganze aussi quelque chose avec cela trop 1faire, dass qui hPicss pas wirklich grosse Ausmasse avons dürfen? |
|
|
| |
|
|
|
RGH | Uwe Pascal Niemeier
Hi Roland!
je hoffe doch, qui du cela chez Gelegenheit änderst? Comme je le disais, sonst serait qui Possibilité den DC vorzugeben oui keinen Sinn faire. Handles comme paramètre Gabs oui déjà longtemps.
SeeYou Pascal
Tja, si je wüsste quoi je là changement peux. dans den allermeisten Fällen funktioniert es et alors un Devicekontext wird comme solcher erkannt (cela est: qui API GetObjType() erkennt sur OBJ_DC). je werde mir cela mais encore la fois anschauen et gucken, quoi GetObjType() dans diesem speziellen le cas meldet ... Hintergrund: là Début de peinture oui aussi Fensterhandles, Bitmaps, etc. transfert volonté peut, muss je oui seulement einmal ermitteln, quoi là transfert wurde. Pour cette nutze je GetObjType().
Salut Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 15.02.2009 ▲ |
|
|
|
|
RGH | ... et déjà quoi trouvé:
il y a aussi den Typ OBJ_MEMDC et qui wird ici erzeugt. Den J'ai eu wohl beim Aufbohren de STARTPAINT pas im Fokus (wohl qui API-Documentation pas large genug runter gescrollt). Es wird dans qui prochain Version nachgerüstet!
Salut Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 15.02.2009 ▲ |
|
|
|
|
Jörg Sellmeyer | chez mir funktioniert es pas! |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 04.11.2011 ▲ |
|
|
|
|
RGH | quoi funktioniert chez Dir pas? chez mir venez qui de Pascal angemeckerte Fehlermeldung pas plus!
Salut Roland |
|
|
| XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 08.11.2011 ▲ |
|
|
|
|
Jörg Sellmeyer | Sorry - je sais es aussi gar pas plus maintenant funktioniert's. peut-être J'ai eu seulement den Code faux verstanden |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 09.11.2011 ▲ |
|
|
|