| |
|
|
Uwe ''Pascal'' Niemeier | Yo bins ya otra vez
Bin en dieses Problema gestoßen: Wenn Yo en StartPaint el Handle uno DeviceContext angebe, el keinem Dialogelement zugeordnet es, bekomme Yo en Einsatz el meisten Gafikbefehle el Meldung Dieser Befehl setzt una Ventana vorraus. El entsprechenden API-Gegenstücke dejar se dagegen problemlos uso. El gleiche Meldung gibts en efecto, si uno en el SpeicherBitmap dibujar voluntad y no creado ha ; sitzt como irgendwo ne entsprechende Sicherheitsüberprüfung en el Weg? Denn si yo sólo una Control brauche, macht el Einsatz des DCs doch eigentlich no Sinn, porque Yo entonces igual el Control-Handle einsetzen kann. KompilierenMarcaSeparaciónwindow 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 | ¡Hola Pascal,
Komisch, en me funktioniert eigentlich beides no así bastante zufriedenstellend. Yo verwende por lo tanto folgenden, bisher siempre zuverlässigen Workarround. Und verwende el DC esta eigentlich sólo fürs Neuzeichnen... KompilierenMarcaSeparaciónhdc&=~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
Yo bins ya otra vez El gleiche Meldung gibts en efecto, si uno en el SpeicherBitmap dibujar voluntad y no creado ha ; sitzt como irgendwo ne entsprechende Sicherheitsüberprüfung en el Weg?
Sí, el Fehlermeldung taucht siempre entonces en, si la DC, en el qué suscrito voluntad se, valor 0 ha. In diesem speziellen Dall schläft STARTPAINT wohl fehl. (Auch después de STARTPAINT ha el Systemvariable %HDC el Werte des aktuellen DC. In diesem Fall es él tatsächlich 0.) Der Grund es wohl, dass STARTPAINT el Parámetro de No erkennbaren Gründen hier no como una DC erkennt, pero para una Fensterhandle hält.
Saludo 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!
Yo hoffe doch, daß Si es usted el en Gelegenheit änderst? Como ya he dicho, sonst sería el Möglichkeit el DC vorzugeben sí no Sinn hacer. Handles como Parámetro gabs sí ya largo.
SeeYou Pascal |
|
|
| |
|
|
|
| Morgen! Sombrero el Ganze auch algo así a tun, dass el hPicss no wirklich grosse Ausmasse haben dürfen? |
|
|
| |
|
|
|
RGH | Uwe Pascal Niemeier
Hi Roland!
Yo hoffe doch, daß Si es usted el en Gelegenheit änderst? Como ya he dicho, sonst sería el Möglichkeit el DC vorzugeben sí no Sinn hacer. Handles como Parámetro gabs sí ya largo.
SeeYou Pascal
Tja, si yo saber Yo como ändern kann. In el allermeisten Fällen funktioniert lo sí y una Devicekontext se como solcher erkannt (el heißt: el API GetObjType() erkennt en OBJ_DC). Yo voluntad me aber una vez más anschauen y gucken, qué GetObjType() en diesem speziellen Fall meldet ... Hintergrund: Como StartPaint en efecto Fensterhandles, Bitmaps, etc. transferencia voluntad puede, muss Yo sí sólo una vez ermitteln, qué como transferencia wurde. Dafür nutze Yo GetObjType().
Saludo 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 | ... y ya qué gefunden:
Lo son auch el Typ OBJ_MEMDC y se hier producido. Den Tuve probablemente el Aufbohren de STARTPAINT no en el Fokus (wohl el API-Documentación no weit genug runter gescrollt). Lo se en el nächsten Versión nachgerüstet!
Saludo 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 | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 04.11.2011 ▲ |
|
|
|
|
RGH | Was funktioniert No en? En me kommt el de Pascal angemeckerte Fehlermeldung no mehr!
Saludo 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 - Yo weiß lo auch nada mehr Jetzt funktioniert's. Tal vez Tuve sólo el código falso verstanden |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 09.11.2011 ▲ |
|
|
|