Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Fragen zur GDI Programmierung (auch an C-Programmierer)

Frage Entwicklung Assembler

Mitglied: supernicky

supernicky (Level 1) - Jetzt verbinden

05.06.2011 um 13:00 Uhr, 3990 Aufrufe, 1 Kommentar

Hallo,
Ziel: zeichnen in einem DC und blitten auf die Form
Problem: Form bleibt immer leer

Hallo,

ich möchte meine Zeichenfunktionen erst in einer Speicherbitmap ausführen und zum Schluss auf die Form blitten.

hier mal der Code aus dem Paint Ereignis

.if uMsg == WM_DESTROY
invoke PostQuitMessage,NULL
mov eax, 0
ret
.elseif uMsg == WM_PAINT

invoke CreateDC, 0,0,0,0 ;hier liegt wohl ein Fehler im ersten Parameter
mov DC, eax

invoke CreateCompatibleDC, DC
mov cDC,eax

invoke CreateCompatibleBitmap, DC, 400, 400
mov cBM, eax
;
xor ebx, ebx
mov bl, 100
mov bh, 100 ;Farbe festlegen für das Pen-Object
shl ebx, 8
mov bl, 100
mov colr, ebx


invoke CreatePen, 0, 1, colr ;Pen erstellen
mov stift, eax

invoke SelectObject, cDC, cBM
invoke BitBlt, cDC, 0, 0, 400, 400, DC, 0, 0, SRCCOPY


invoke SelectObject, DC, stift
invoke Rectangle, cDC,10,10,100,100


invoke BitBlt, formdc, 0, 0, 400, 400, cDC, 0, 0, SRCCOPY


invoke DeleteObject, DC
invoke DeleteObject, cDC
invoke DeleteObject, cBM
invoke DeleteObject, stift

.endif


Der Code wird fehlerfrei kompiliert, also denke ich mal das es irgendwo an den Parametern hängt.

Mein Vorgehen:

erstellen eines DeviceContext = DC
wie oben schon steht glaube ich das hier schon ein Fehler im ersten Parameter drin ist...

erstellen eines CompatibleDeviceContext = cDC
erstellen einer CompatibleBitmap mit den Maßen 400,400 = cBM

Farbe auf Grau einstellen
Pen Objekt erstellen und ein Rechteck auf dem CompatibleDeviceContext zeichnen (nicht in die CompatibleBitmap oder?)

den CompatibleDeviceContext auf die Form blitten

Objekte löschen

Leider bleibt die Form leer..

Ich hoffe mir kann jemand helfen...
Direkt auf die Form zeichnen klappt super, nur habe ich da diesen Flimmereffekt, den möchte ich damit vermeiden.

Ein paar Stichpunkte würden mir schon helfen was die Reihenfolge zum erstellen der Speicherbitmap angeht.

Danke und Gruß,

Nicky
Mitglied: supernicky
14.06.2011 um 19:27 Uhr
Lösung:

CreateDC wird nicht gebraucht da man den DC der Form nutzen kann..

GetDC, hWnd

Nicky

Was man hier alles selbst machen muss...
Bitte warten ..
Ähnliche Inhalte
Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...

Sicherheitsgrundlagen
Fragen zu Passwortrichtlinien und Password Reset Self Service (3)

Frage von anywhereandnowhere zum Thema Sicherheitsgrundlagen ...

Administrator.de Feedback
Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen (3)

Tipp von 132692 zum Thema Administrator.de Feedback ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(9)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...