Seite 1 von 1

Copy/Paste in IDE verändert Programmverhalten - strange!

Verfasst: 18.05.2010 13:25
von Kurzer
Hallo zusammen,

folgendes Problem habe ich mit der 4.41 und auch der 4.50 b4 festgestellt.
Es geht um den Beispielcode "CreateWindowEx.pb" aus dem Codearchiv:

- Lädt man den Beispielcode per Dateiexplorer der PB-IDE direkt in den Editor und führt ihn aus, dann arbeitet er wie erwartet.
- Kopiert man nun diesen Quellcode mittels CTRL-A und CTRL-C und fügt ihn unverändert in einen neuen TAB der IDE ein, dann funktioniert das Erstellen des Buttons und auch die Auswertung der WM_CLOSE Message nicht mehr.

Ich kanns mir nicht erklären.

Hier ein Screenvideo davon (XVid codec, 2 MB)

Re: Copy/Paste in IDE verändert Programmverhalten - strange!

Verfasst: 18.05.2010 13:38
von Jilocasin
Weder Winamp, noch VLC futtert das Video, obwohl ich den ganzen xvid codec quark eigentlich installiert hab O.o

Mir fiel spontan nur ein, dass es eine Compilereinstellung sein könnte, die in der .pb Datei eben angegeben ist und beim Text-Kopieren verloren geht? :?

Re: Copy/Paste in IDE verändert Programmverhalten - strange!

Verfasst: 18.05.2010 13:57
von Kurzer
Ups, sorry. Ich hatte noch den Ogg Theora codec aktiviert. Habe das Video oben jetzt ausgetauscht, nun ist es wirklich XVid.

Davon ab hast du recht mit den Compilereinstellungen, Jilocasin. Schalte ich die XP-Skinunterstützung aus, dann ist der Button wieder zu sehen und das Programm reagiert wie erwartet.

Aber warum ist das so?
Eine normale in C geschriebene Fensteranwendung würde doch genau so aussehen, oder?

Re: Copy/Paste in IDE verändert Programmverhalten - strange!

Verfasst: 18.05.2010 15:28
von freak
Da fehlt der Aufruf von InitCommonControls[Ex]_()

Re: Copy/Paste in IDE verändert Programmverhalten - strange!

Verfasst: 18.05.2010 17:01
von Kurzer
Super, klappt. :allright:
;... Auszug aus "CreateWindowEx.pb" ...
CreateWindowEx_(0, "Static", "", #WS_CHILD | #WS_VISIBLE | $12, 9, 9, 102, 22, hWndMain, 0, 0, 0)
CreateWindowEx_(0, "Button", "Button 1", #WS_CHILD | #WS_VISIBLE, 10, 10, 100, 20, hWndMain, 0, 0, 0)

icc.INITCOMMONCONTROLSEX
icc\dwSize = SizeOf(INITCOMMONCONTROLSEX)
icc\dwICC = #ICC_STANDARD_CLASSES
InitCommonControlsEx_(@icc)
;...
Der Aufruf direkt nach Erzeugung des Controls ist hoffentlich richtig.

Re: Copy/Paste in IDE verändert Programmverhalten - strange!

Verfasst: 18.05.2010 22:52
von freak
Es gehört davor, weil es dafür sorgt das die Fensterklassen initialisiert werden.