Risolto: Come Correggere La Finestra Di Dialogo Di Compilazione Di Win32 Senza File Di Risorse

Quando il tuo computer funziona, questo software lo risolverà e proteggerà i tuoi dati.

Se hai una finestra di dialogo di creazione di Win32 senza un file di risorse relativo al tuo PC, questa guida potrebbe aiutarti.

Se desideri solo visualizzare una finestra di selezione contenente i controlli, puoi creare un’apertura senza utilizzare file/programmi applicativi (.rc).

Questa non è una singola finestra di dialogo correlata, ma può essere più semplice della creazione di una finestra di dialogo di crescita completa.

Primi alcuni commenti:

  • finestra di dialogo di installazione di win32 senza file di risorse

    Invece di progettare una finestra di dialogo generica in un file rc sostanziale, la tua azienda può immediatamente . usa CreateWindow (o CreateWindowEx ) per aiutarti a raggiungere ogni finestra principale mentre crei aiuti per le finestre figlie … (per i programmatori .NET Windows Forms, queste finestre sembrano controlli ).

  • Questi passaggi non saranno grafici dopo averli esaminati tutti (in realtà è necessario specificare la posizione a livello di finestra su tutti i siti Web), anche se vedo che questo può essere un ottimo strategia per capire come i nostri dialoghi parlano della cappa.

  • Devi correggere gli errori di Windows? Reimage può aiutare

    Il tuo computer è lento e lento? Stai ricevendo il temuto Blue Screen of Death? Allora è il momento di scaricare Restoro! Questo software rivoluzionario riparerà tutti i tuoi errori comuni di Windows, proteggerà i tuoi file da perdita o danneggiamento e manterrà il tuo hardware funzionante in modo ottimale. Allora, cosa stai aspettando? Scarica Restoro ora!

  • 1. Scarica e installa il software Reimage
  • 2. Apri il software e fai clic su "Cerca problemi"
  • 3. Fai clic su "Ripara tutto" per avviare il processo di riparazione

Ci sono diversi problemi, quando tutta la tua famiglia non utilizza la chat reale, esclusivamente: quando si passa da un controllo all’altro, le attività non vengono visualizzate.

Informazioni su questo esempio:

  • Questo esempio ha una finestra di dialogo particolare con due pulsanti, la casella di modifica (il PC .NET Windows Forms pensa che verrà creata sulla base di un TextBox ) e ugualmente una casella di controllo.
  • versione x86
  • registrazione x64
  • Crea Unicode insieme a (definito da unicode _UNICODE )
  • compila non Unicode quindi ( unicode _UNICODE undefined)
  • Creato con il compilatore C di Visual Studio
  • Creato con direi il compilatore C ++ di Visual Studio
  • Sistema operativo: Windows 10 a 64 bit

Nota: UNICODE

  • In ogni momento in cui scrivo, UTF-8 viene mantenuto in versione beta solo per Windows ten.
    • Se non hai incluso alcuni dei parametri dell’elemento, devi presumere che do ogni char * sarà ACP e non UTF-8. Questo vale anche per le funzioni di libreria standard.
    • Anche se su Linux la stessa semplice funzione di libreria sarebbe UTF-8.
    • Sfortunatamente per alcuni, la libreria standard C++ offre attività solo tramite char * (ad esempio, messaggi di eccezione).
    • Puoi anche beneficiare di UTF-8 su Windows senza impostare il tipo di parametro, devi fondamentalmente scriverlo in termini UTF-16 prima di telefonare alle funzioni di winapi.
    • Qui c’è davvero senza dubbio un thread Reddit da qualche parte in cui qualcuno afferma di voler funzionare con UTF-8 su Windows. Questa occasione contiene informazioni utili.
  • UNICODE durante Windows “UTF-16” non implica “UTF-8”.
  • Qualsiasi tipo di Unicode sarà altamente raccomandato per tutti i layout di Windows che non sono più terribilmente vecchi.
    • Tieni presente che se non utilizzi Unicode, la tua formazione potrebbe non essere in grado di salvare nomi di database con caratteri Unicode, siti Web (come nomi utente) con unità. PCA alcuni altri.
    • L’uso delle funzioni ACP ( SendMessageA , ecc.) senza controllare esplicitamente perché UTF-8 è consentito (disabilitato semplicemente predefinito) è probabilmente l’ultimo bug.
    • Per la massima portabilità/flessibilità, userei il rendering di tutte le offerte API in UTF-16 e W e penserei da UTF-8 a UTF-16 all’ultimo minuto. Si prega di leggere attentamente questa storia.

Ora per il codice:

Quale sarebbe l’ID della risorsa di dialogo?

L’istruzione indica le impostazioni e le dimensioni di un grafico di dialogo sullo schermo, oltre allo stile dell’esatta finestra di dialogo. È probabile che DIALOG sia direttamente un identificatore di risorsa deprecato. Le nuove applicazioni devono utilizzare DIALOGEX.

win32 crea finestra di dialogo senza file di investimento

Presta attenzione a cosa significa ancora. Molti commenti sono stati fatti ogni volta che si tenta di documentare la funzionalità di Windows. Consiglio di copiarli/incollarli da soli in un editor di testo per ottenere risultati corretti.

  // Questo scenario funziona con o senza UNICODE, magnificamente come// Si consiglia ora di tornare a utilizzare UNICODE per tutte le nuove modalità, ma non lo sono// ANSI diverso è presente solo per il prompt per ottenere il massimo grado possibile// Compatibilità.//// Nota che UNICODE anche _UNICODE vanno insieme, il peggio// L'API di Windows utilizza _UNICODE e alcune utilizza UNICODE.//// tchar.h, ad esempio, per sfruttare _UNICODE e windows.h// Troverai fantastico usare UNICODE.Definisci #UNICODE#define_UNICODE// numero indefinito UNICODE// # undef_UNICODE#include #include // Ho creato la nostra struttura in modo che sia più comodo conservarli online// Posizioni / Dimensioni di ogni parabrezza nella finestra di dialogotypedef struct SizeAndPos_s    intero x, p, distanza, altezza; SizeAndPos_t;// Di solito è sempre #defines, ma c'è// giusto motivo per non renderlo costanteconst MOT ID_btnHELLO = 1;const WORD ID_btnQUIT è 2;const MOT ID_CheckBox implica 3;const MOT ID_txtModifica = 4;const WORD ID_btnMostra corrisponde 5;// x, y, larghezza, altezzaconst SizeAndPos_t mainWindow = uno,150, 300, 290;const SizeAndPos_t btnHello = 29, 50, quaranta, 25;const SizeAndPos_t btnQuit corrisponde a 120, quarantacinque, 80, 24;const SizeAndPos_t chkCheck = moglie di 90, 185, 35 anni;const SizeAndPos_t txt Modifica corrisponde a 20, 150, 130, 20;const SizeAndPos_t btnShow corrisponde a 180, 150, 80, 23 cinque;HWND txtEditHandle = NULL;// hwnd: i processi virtualmente della finestra di solito passano un altro handle alla nuova finestra// normalmente sei positivo riguardo a hwnd.// msg: il messaggio corrente (per tipo, WM_ *) ricevuto dal sistema di lavoro in esecuzione.// wParam: Il primo parametro relativo al messaggio personale, si noti che in questo momento ce n'è più o meno una grossa somma// gli interi, sfortunatamente, sono per lo più "blocchi di dati".// Tu e la famiglia in particolare dovete archiviare record grezzi per ospitare dati, ecc.// lParam: parametro minuto del messaggio, stessa attività di cui sopra.LRESULT CALLBACK WndProc (HWND hwnd, UINT MSG, WPARAM wParam, LParam) interruttore lparam (msg).     WS_CHILD, btnQuit.x, btnQuit.y, btnQuit.width, btnQuit.height, hwnd, (HMENU) ID_btnQUIT, NULL, NULL);        // Crea una casella di controllo        // ------------------------------------------------ -------------------------------------------------- -------------------------------------------------- --------------------------------------------------        CreateWindow (TEXT ("pulsante"), TEXT ("CheckBox"), WS_VISIBLE    restituisce DefWindowProc (hwnd, msg, wParam, lParam);// hInstance: questo handle allude all'eseguibile che sta ricevendo eseguito// hPreviousInstance: non acquistato. Vedere https://blogs.msdn.microsoft.com/oldnewthing/20040615-00/?p=38873// lpCmdLine: domina gli argomenti di rete.// nCmdShow: buon indicatore che indica o anche la mia finestra principale dell'applicazione// sembra che tu debba essere compresso o renderizzato normalmente a prima vista.//// Nota che hai bisogno e usa _tWinMain per questo// make be sold for line conflict funziona, entrambi// con e in aggiunta se non hai definito UNICODE per _UNICODE.int _tWinMain (hInstance d'apientry HINSTANCE, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)    messaggio MSG;    WNDCLASS mainWindowClass = 0;    // Puoi correggere qualsiasi nome per la finestra del camion principale, ma    // continuamente qualcuno dovrebbe aggiungere le proprie classi di parabrezza    // avendo qualcosa che lo renda virtualmente unico.    mainWindowClass.lpszClassName significa TESTO ("JRH.MainWindow");    mainWindowClass.hInstance è uguale a hInstance;    mainWindowClass.hbrBackground significa GetSysColorBrush (COLOR_3DFACE);    mainWindowClass.lpfnWndProc = WndProc;    mainWindowClass.hCursor = LoadCursor (0, IDC_ARROW);    RegisterClass (& mainWindowClass);   // Appunti:   // 4 . Il nome della classe definisce il suo TIPO della finestra. Non varietà di C.     // Questo è un identificatore (TCHAR *) che potrebbe essere utilizzato internamente da molti Windows.    // - Il nome di apertura è in realtà solo elaborato rispetto al testo della finestra, che è// usato spesso per quanto riguarda le firme, inclusa l'intestazione    // La barra del filtro stesso.    // ParentHandle - considerato il "proprietario" tra loro    //   Finestra. I MessageBox possono utilizzare HWND_MESSAGE per    // cancellali usando qualsiasi tipo di finestra.    // menuHandle: hMenu specifica questo particolare id della finestra subordinata,    // il numero intero specifico viene utilizzato dalla finestra di dialogo    // Controllo per la notifica degli eventi alle madri o ai padri.    // L'applicazione definisce la sua finestra del ragazzo    // identificatore; l'applicazione dovrebbe essere 1 in tutto    // Piccole finestre con la stessa finestra padre.    // CreateWindow (windowClassName, windowName, style, xPos, yPos, width, height, parentHandle, menuHandle, instanceHandle, param);    CreateWindow (mainWindowClass.lpszClassName, Window "), contenuto testuale (" main WS_OVERLAPPEDWINDOW// Questo codice è orientato al materiale di vari medici, i quali di voi dimostrano il codice del tutorial su http://zetcode.com/gui/winapi/. 

Ulteriori letture

L'insieme del corso per furgone finestra integrato è piuttosto limitato, quindi potresti essere curioso di sapere come definire opportunamente gli stili delle tue finestre private (" Control s") utilizzando generalmente l'API di Windows. vedere gli articoli di seguito:

  • Controlli personalizzati API Win32: le basi (progetto codice)
  • Il codice sorgente dell'emulatore WINE è senza dubbio un buon esempio importante di strategie su come l'API di Windows può essere integrata e il modo più semplice per ottenere la tua finestra per ricevere classi in cui imitano il comportamento delle classi generalmente integrate.
  • Manuali da Zetcode.com

NOTA. Inizialmente ho scritto un articolo sulla personalizzazione delle finestre di dialogo a livello di codice. A causa di un errore specifico sulla parte nuova di zecca, non era ancora semplice per me che la finestra potrebbe non essere necessariamente "visualizzata" come una finestra di dialogo completa. Sfortunatamente non sono riuscito a far funzionare la configurazione menzionata da Chen Raymond. Anche l'aspetto proveniente dalla fonte del VIN è davvero incomprensibile.

Il tuo PC ti dà problemi? Rilassati, c'è una soluzione! Clicca qui per scaricare.

Win32 Create Dialog Without Resource File
Win32 Dialoog Maken Zonder Bronbestand
Win32 Tworzy Okno Dialogowe Bez Pliku Zasobow
Win32 Creer Une Boite De Dialogue Sans Fichier De Ressources
Win32 리소스 파일 없이 대화 상자 만들기
Win32 Skapa Dialog Utan Resursfil
Win32 Erstellungsdialog Ohne Ressourcendatei
Win32 Crear Dialogo Sin Archivo De Recursos
Win32 Cria Dialogo Sem Arquivo De Recurso
Dialogovoe Okno Sozdaniya Win32 Bez Fajla Resursov