Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

XP-Style in Programmen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 03.05.2009, 19:19    Titel: XP-Style in Programmen Antworten mit Zitat

Ich habe ein Problem: ich möchte meine Steuerelemente in einem Programm im XP-Style angezeigt bekommen.

ICH HABE MIR DAS TUTORIAL IM FB-PORTAL DURCHGELESEN UND DIE FORENSUCHE BENÜTZT.

...Dennoch habe ich es nicht hinbekommen. Vielleicht könnt ihr mir ja helfen.

Ich habe es wie folgt versucht (ein kleines Beispielprogramm):

WindowsTest.bas
Code:
#Include Once "windows.bi"
#Include Once "win/commctrl.bi"

#define IDD_DLG1 1000
#define IDC_BTN1 1001

Dim Shared hInstance As HMODULE

Declare Function DlgProc(ByVal hWin As HWND, ByVal uMsg As UINT, ByVal wParam As WPARAM, ByVal lParam As LPARAM) As Integer

   InitCommonControls()
   hInstance=GetModuleHandle(NULL)
   DialogBoxParam(hInstance, Cast(ZString Ptr,IDD_DLG1), NULL, @DlgProc, NULL)

   ExitProcess(0)
   End


Function DlgProc(ByVal hWin As HWND,ByVal uMsg As UINT,ByVal wParam As WPARAM,ByVal lParam As LPARAM) As Integer
   Dim As Long id, Event, x, y
   Dim hBtn As HWND
   Dim rect As RECT

   Select Case uMsg
      Case WM_INITDIALOG
         '
      Case WM_CLOSE
         EndDialog(hWin, 0)
         '
      Case WM_COMMAND
         id=LoWord(wParam)
         Event=HiWord(wParam)
         Select Case id
            Case IDC_BTN1
               EndDialog(hWin, 0)
               '
         End Select
      Case WM_SIZE
         '
      Case Else
         Return FALSE
         '
   End Select
   Return TRUE

End Function


WindowsTest.rc
Code:
#define IDD_DLG1 1000
#define IDC_BTN1 1001

IDD_DLG1 DIALOGEX 6,5,91,36
CAPTION "Test-Fenster"
FONT 8,"MS Sans Serif",400,0,0
STYLE 0x10CC0800
BEGIN
  CONTROL "Klick hier!!",IDC_BTN1,"Button",0x50010000,12,9,64,19
END

1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEOS 0x00000004
FILETYPE 0x00000001
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
    BLOCK "04070000"
    BEGIN
      VALUE "FileVersion", "1.0.0.0\0"
      VALUE "ProductVersion", "1.0.0.0\0"
      VALUE "CompanyName", "Test123\0"
      VALUE "ProductName", "Test123\0"
      VALUE "FileDescription", "Test\0"
      VALUE "InternalName", "Test123\0"
      VALUE "LegalCopyright", "Test (c) 2009\0"
      VALUE "LegalTrademarks", "Test (c) 2009\0"
      VALUE "OriginalFilename", "Test123\0"
    END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0x0407, 0x0000
  END
END

2 MANIFEST "xpmanifest.xml"


xpmanifest.xml
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
   version="1.0.0.0"
   processorArchitecture="*"
   name="Test123.Test123.Test123"
   type="win32"
/>
<description></description>
<dependency>
   <dependentAssembly>
      <assemblyIdentity
         type="win32"
         name="Microsoft.Windows.Common-Controls"
         version="6.0.0.0"
         processorArchitecture="X86"
         publicKeyToken="6595b64144ccf1df"
         language="*"
      />
   </dependentAssembly>
</dependency>
</assembly>


Alle Dateien sind im selben Ordner und mit dem Befehl
fbc -s gui WindowsTest.bas WindowsTest.rc
hab ich das Programm kompiliert, was auch ohne Probleme funktioniert - nur der XP-Style ist eben nicht da.

Was hab ich da falsch gemacht? Was hab ich übersehen?
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 03.05.2009, 20:04    Titel: Antworten mit Zitat

http://sagagames.de/?programm=xpstyle
Schonmal das probiert? lächeln
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 03.05.2009, 20:05    Titel: Antworten mit Zitat

Machs doch einfach per FBEdit, da kann man nichts falsch machen.
Hab ich auch in log-n-process so gemacht.

Code:
#define MANIFEST 24
[...]
#define IDR_XPMANIFEST1 1

[...]

IDR_XPMANIFEST1 MANIFEST "xpmanifest.xml"


so sieht die rc bei mir aus. Im Code steht nur ein InitCommonControls (+ die Include) und die xml sieht bei mir absolut gleich aus.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 03.05.2009, 21:22    Titel: Antworten mit Zitat

Eigentlich sollte das alles so wie ich es im Tutorial geschildert habe funktionieren

Anbei: Mein Tutorial richtet sich eher an Fortgeschrittene, und nicht unbedingt an Anfänger, da es doch inhaltlich etwas über die Grundlagen hinaus geht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 03.05.2009, 21:52    Titel: Antworten mit Zitat

Ich weiß nicht an was es genau lag, jedenfalls hat es mit der in FBedit eingebauten Funktion funktioniert lächeln.

Danke für eure schnellen Antworten.

@MOD: Vielen Dank für den Hinweis, ich hab nicht gewusst, dass FBedit das auch kann, habs aber jetzt gefunden.

@28398: Klar, in Sachen Windows GUI - Programmierung bin ich blutiger Anfänger, aber nach dem durchlesen deines Tutorials (was sehr verständlich geschrieben ist) hätte ich gedacht, ich kriegs hin - dem war dann nicht so, warum weiß ich bis jetzt nicht. Ich hatte vor an das Thema Windows Programmierung nach dem Motto "Learning by doing" heranzugehen.

@Jojo: Ich mach normalerweise lieber alles "manuell", da man dabei den Hintergrund der Sache viel besser verstehen lernt, als wenn man vorgefertigte Programme verwendet, bei dem man sich keine Gedanken mehr machen muss. Außerdem: ist dein Programm nicht für VB? - oder soll das auch mit FB funktionieren?
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 03.05.2009, 21:58    Titel: Antworten mit Zitat

Nein so klappt das eher nicht zwinkern

Du solltest dir, wenn es dir wirklich ernst ist, den Petzold zulegen (Windows Programmierung von Charles Petzold)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 03.05.2009, 22:32    Titel: Antworten mit Zitat

Zitat:
@Jojo: Ich mach normalerweise lieber alles "manuell", da man dabei den Hintergrund der Sache viel besser verstehen lernt, als wenn man vorgefertigte Programme verwendet, bei dem man sich keine Gedanken mehr machen muss. Außerdem: ist dein Programm nicht für VB? - oder soll das auch mit FB funktionieren?

Das ist egal, das funktioniert mit allen Windows-EXEn. Das Programm macht nichts weiter als die XML-Ressource anzufügen.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz