login  Naam:   Wachtwoord: 
Registreer je!
 Forum

C++

Offline SvenP - 11/06/2005 14:41
Avatar van SvenPPHP interesse Wie zou mij een beetje kunnen helpen met de basis van c++ (windows application) ?
plz geen tuts naar me toeschuiven, hebk namelijk best hekel aan... ;)

wat mijn doel is, is een msn client te schrijven in c++..
maar aangezien ik net ben begonnen in C++, zal dat nog wel even moeten wachten..

wat ik als eerste wil weten,
hoe zet ik een test (label) in een windows application ?
k werk met Dev-C++, werkt nog prima..
k heb nu dit (begin van windows application):
  1. #include <windows.h>
  2.  
  3. /* Declare Windows procedure */
  4. LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
  5.  
  6. /* Make the class name into a global variable */
  7. char szClassName[ ] = "WindowsApp";
  8.  
  9. int WINAPI WinMain (HINSTANCE hThisInstance,
  10. HINSTANCE hPrevInstance,
  11. LPSTR lpszArgument,
  12. int nFunsterStil)
  13.  
  14. {
  15. HWND hwnd; /* This is the handle for our window */
  16. MSG messages; /* Here messages to the application are saved */
  17. WNDCLASSEX wincl; /* Data structure for the windowclass */
  18.  
  19. /* The Window structure */
  20. wincl.hInstance = hThisInstance;
  21. wincl.lpszClassName = szClassName;
  22. wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
  23. wincl.style = CS_DBLCLKS; /* Catch double-clicks */
  24. wincl.cbSize = sizeof (WNDCLASSEX);
  25.  
  26. /* Use default icon and mouse-pointer */
  27. wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
  28. wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
  29. wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
  30. wincl.lpszMenuName = NULL; /* No menu */
  31. wincl.cbClsExtra = 0; /* No extra bytes after the window class */
  32. wincl.cbWndExtra = 0; /* structure or the window instance */
  33. /* Use Windows's default color as the background of the window */
  34. wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
  35.  
  36. /* Register the window class, and if it fails quit the program */
  37. if (!RegisterClassEx (&wincl))
  38. return 0;
  39.  
  40. /* The class is registered, let's create the program*/
  41. hwnd = CreateWindowEx (
  42. 0, /* Extended possibilites for variation */
  43. szClassName, /* Classname */
  44. "iMSN Messenger", /* Title Text */
  45. WS_OVERLAPPEDWINDOW, /* default window */
  46. CW_USEDEFAULT, /* Windows decides the position */
  47. CW_USEDEFAULT, /* where the window ends up on the screen */
  48. 250, /* The programs width */
  49. 500, /* and height in pixels */
  50. HWND_DESKTOP, /* The window is a child-window to desktop */
  51. NULL, /* No menu */
  52. hThisInstance, /* Program Instance handler */
  53. NULL /* No Window Creation data */
  54. );
  55.  
  56. /* Make the window visible on the screen */
  57. ShowWindow (hwnd, nFunsterStil);
  58.  
  59. /* Run the message loop. It will run until GetMessage() returns 0 */
  60. while (GetMessage (&messages, NULL, 0, 0))
  61. {
  62. /* Translate virtual-key messages into character messages */
  63. TranslateMessage(&messages);
  64. /* Send message to WindowProcedure */
  65. DispatchMessage(&messages);
  66. }
  67.  
  68. /* The program return-value is 0 - The value that PostQuitMessage() gave */
  69. return messages.wParam;
  70. }
  71.  
  72.  
  73. /* This function is called by the Windows function DispatchMessage() */
  74.  
  75. LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  76. {
  77. switch (message) /* handle the messages */
  78. {
  79. case WM_DESTROY:
  80. PostQuitMessage (0); /* send a WM_QUIT to the message queue */
  81. break;
  82. default: /* for messages that we don't deal with */
  83. return DefWindowProc (hwnd, message, wParam, lParam);
  84. }
  85.  
  86. return 0;
  87. }


waar en wat moet ik neerzetten om gewoon een simpele text te schrijven on het venster?

9 antwoorden

Gesponsorde links
Offline Dennis - 11/06/2005 14:52
Avatar van Dennis Gouden medaille

Grafische expert
Ik zou eerst maar eens de basis leren van C++.
Dan weet je tenminste wat je doet!
En daarna beginnen met win32.
Offline SvenP - 11/06/2005 14:53
Avatar van SvenP PHP interesse vraag ik niet ;)
Offline nemesiskoen - 11/06/2005 15:06 (laatste wijziging 11/06/2005 15:07)
Avatar van nemesiskoen Gouden medaille

PHP expert
is niet zo makelijk als je denkt hoor...
zoals Dennis zegt, leer de basis:)

maar je vraagt er echt om.
Dit is de moeilijke manier, en voor mij tot nu toe de manier die ik weet dat het werkt...
Ik ga je niet alle uitleg geven wat je hiervoor moet snappen, want dan ben ik tig tutorials verder

Maar je moet het doen via de methode BeginPaint (je gaat alles tekenen, net zoals JAVA applets):

  1. LRESULT CALLBACK WindowProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
  2.  
  3. PAINTSTRUCT PaintS;
  4. HDC hdc;
  5.  
  6. // Hier moet je dan nakijken wat voor message je ontvangt vanuit je windows... als het gaat om WM_PAINT: (switch!!!!!!!! ==> tip) dan moet je dus gaan painten:
  7.  
  8. hdc = BeginPaint(hwnd,&paintS);
  9.  
  10. //einde van jou mogelijke switch
  11.  
  12. }


Maar je moet echt is opzoeken in tutorials. Dat is echt ingewikkeld wat je wilt. Zéker met C++.
Offline prorsoft - 11/06/2005 15:40 (laatste wijziging 11/06/2005 15:46)
Avatar van prorsoft PHP gevorderde of met een MsgBox:
  1. #include <windows.h>
  2.  
  3. int WINAPI WinMain (HINSTANCE hInstance,
  4. HINSTANCE hPrevInstance,
  5. PSTR szCmdLine,
  6. int iCmdShow)
  7. {
  8. MessageBox (NULL, "Dit is een alertboxje.", "Titeltje", MB_OK);
  9. return (0);
  10. }
Offline Fenrir - 11/06/2005 18:30 (laatste wijziging 11/06/2005 18:31)
Avatar van Fenrir PHP expert Aha, C#-Power:

  1. public class MainForm : System.Windows.Forms.Form
  2. {
  3. public static void Main()
  4. {
  5. Application.Run(new MainForm());
  6. }
  7. }


Dat doet hetzelfde als die hele bende C++ in je eerste post.
Offline Dennis - 11/06/2005 18:40
Avatar van Dennis Gouden medaille

Grafische expert
Zo ken ik er nog 1:p :

AutoIT power

  1. #include <GuiConstants.au3>
  2. Opt("GUIOnEventMode", 1)
  3.  
  4. ;maak form
  5. GuiCreate("titel",600, 500)
Offline nemesiskoen - 11/06/2005 18:44 (laatste wijziging 11/06/2005 18:45)
Avatar van nemesiskoen Gouden medaille

PHP expert
PHP-power

  1. <?php
  2. ?>


:)

java-power?

  1. import javax.swing.*;
  2.  
  3. public class SwingVensterMetTitel extends JFrame {
  4. public static void main (String argumenten[]) {
  5. SwingVensterMetTitel v = new SwingVensterMetTitel();
  6. v.setSize(300, 200);
  7. v.show();
  8. }
  9. public SwingVensterMetTitel() {
  10. super( "titel" );
  11. }
  12. }
Offline SvenP - 11/06/2005 20:47 (laatste wijziging 12/06/2005 18:25)
Avatar van SvenP PHP interesse ok me text staat in het venster 
  1. LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  2. {
  3. HDC hdc; //device context
  4. PAINTSTRUCT ps; //paint stucture
  5. RECT rect; //rectangle sturcture
  6.  
  7. switch (message) /* handle the messages */
  8. {
  9. case WM_CREATE: //Wordt ontvangen als het window wordt gemaakt
  10. break;
  11.  
  12. case WM_PAINT:
  13. hdc = BeginPaint (hwnd, &ps) ;
  14.  
  15. GetClientRect (hwnd, &rect) ;
  16.  
  17. DrawText (hdc, TEXT ("hello world!"), -1, &rect,
  18. DT_SINGLELINE) ;
  19. EndPaint (hwnd, &ps) ;
  20. break;
  21.  
  22. case WM_CLOSE: //Wordt ontvangen als het window wordt gesloten
  23. PostQuitMessage(0);
  24. break;
  25. default: /* for messages that we don't deal with */
  26. return DefWindowProc (hwnd, message, wParam, lParam);
  27. }
  28.  
  29. return 0;
  30. }

maar de achtergrond van de txt is wit.. hoe kan ik dat naar transparant of standaart grijs veranderen?
Offline nemesiskoen - 12/06/2005 19:44
Avatar van nemesiskoen Gouden medaille

PHP expert
jij weigert ook maar te zoeken he?
Je postte deze vraag gisterenavond en hebt hem zitten editten sinds dien zodat hij telkens bij de 10 (bij sommige 20) laatste forumtopics staat.

Zoek eens!

Je kan het bv doen via directX (direct3D/draw).
Maar ik ga hier geen directX codes liggen posten !

De functie daarvoor is deze:
Citaat:
D3DCOLOR_XRGB(RODE KLEUREN, GROENE KLEUREN, BLAUWE KLEUREN)

Rode/groene/blauwe kleuren vervangen door een waarde van 0 tot 255.

Maar begin nu toch eens bij de basis en bij het zoeken hiernaar!
Je verwacht toch niet dat je een soort van MSN kan gaan maken na een weekje ofzo !
Als dat zo was dan zou er niet veel te rapen vallen als software ontwikkelaar. Het is moeilijk en als je het kan, dan kan je er iets mee verdienen. En op de manier dat jij bezig bent ga je later nooit (zelfstandig) een oplossing voor een probleem vinden!

Leer de taal!
(en stop met dit topic te vernieuwen!)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.249s