Avatar billede kimbork Nybegynder
08. februar 2009 - 14:10 Der er 78 kommentarer og
1 løsning

Meget gratis hjælp.

http://www.freeimagehosting.net/uploads/db5741f2e0.jpg

Det er det jeg gerne vil ha lavet, eller ha meget hjælp til at lave.

Hvis der er nogen som lige hurtigt kan lave det så sig til fordi så kan i få min e-mail og så kan i bare sende alle filerne til mig, i får selfølig 200 point for det og selfølgeligt en masse ros :)

Hvis der er spørgsmål angående tegningen så sig bare til men er i gang med at finde ud af hvordan den precis ska skal se ud og skal kunne gøre.

Hilsen: Kim Bork
Avatar billede kimbork Nybegynder
08. februar 2009 - 14:40 #1
http://www.freeimagehosting.net/uploads/d101f60380.jpg

Her er den nye og forbedrede tegning over mit program :)
Avatar billede bertelbrander Novice
08. februar 2009 - 16:06 #2
Jeg vil stadig godt hjælpe dig med at lave programmet, men jeg vil ikke lave det for dig.
Jeg har først tid sent i aften.
Avatar billede kimbork Nybegynder
08. februar 2009 - 16:12 #3
okay bertel jeg troede at du ikke gad :)

Tak, men ved du ca, hvornår i aften?
Avatar billede kimbork Nybegynder
08. februar 2009 - 16:16 #4
og kan du ikke lige hurtigt forklare hvorfor bitmap exemplet ikke virker?
Avatar billede bertelbrander Novice
08. februar 2009 - 17:49 #5
Den bliver sikkert over 11 inden jeg får tid i aften.

Det bitmat eksemplet skal gøre, er at vise en billede fra en fil, filen forventes at hedde sample.bmp og ligge i samme mappe som programmet (eller der hvorfra programmet køres). Du kan naturligvis ændre navnet på filen, men det skal være en .bmp fil.

Hvad sker der når du forsøger at køre det? Kan det oversættes? Kører programmet?

Og hvis jeg skal hjælpe dig bliver du nødt til at komme med nogle bedre tilbagemeldinger, det hjælper ikke at du bare skriver "det virker ikke", eller "hvad gør jeg så".

Og det er ikke god stil at du bare lukker (og tager point tilbage) de spørgsmål du opretter og hvori du har fået god hjælp. Det kan godt være at du ikke fik præcist det du søgte eller at du ikke fik løst hele problemet, men folk har trods alt brugt tid på at svare.
Avatar billede kimbork Nybegynder
08. februar 2009 - 19:28 #6
okay, Tak

Det ska ljeg huske til en anden gang :)
Avatar billede kimbork Nybegynder
08. februar 2009 - 19:49 #7
http://www.freeimagehosting.net/uploads/bc43fc890f.jpg

Så har jeg taget et print screen af den fejl leg får når jeg prøver at kompille din bitmaip Exempel :)

Kode Her --->

#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <string.h>
#include <stdio.h>

HINSTANCE hInst;
HWND hwndMain;
HBITMAP Bitmap;
UINT ImageWidth, ImageHeight;

LRESULT CALLBACK MainWndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam);

HBITMAP LoadBMP(const char *FileName, UINT *Width, UINT *Height)
{
  HBITMAP BitMap = (HBITMAP )LoadImage(0, FileName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
  if(!BitMap)
    MessageBox(0, "Failed to load image", "BitMap", MB_OK);
  else
  {
    BITMAP BitmapInfo;
    GetObject(BitMap, sizeof(BITMAP), &BitmapInfo);
    *Width = BitmapInfo.bmWidth;
    *Height = BitmapInfo.bmHeight;
  }
  return BitMap;
}

static BOOL InitApplication(void)
{
  WNDCLASS wc;

  memset(&wc,0,sizeof(WNDCLASS));
  wc.style = CS_HREDRAW|CS_VREDRAW |CS_DBLCLKS ;
  wc.lpfnWndProc = (WNDPROC)MainWndProc;
  wc.hInstance = hInst;
  wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
  wc.lpszClassName = "BitmapWndClass";
  wc.hCursor = LoadCursor(NULL,IDC_ARROW);
  wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
  if (!RegisterClass(&wc))
    return 0;

  Bitmap = LoadBMP("sample.bmp", &ImageWidth, &ImageHeight);

  return 1;
}

HWND CreateBitmapWndClassWnd(void)
{
  return CreateWindow("BitmapWndClass","Bitmap",
                      WS_MINIMIZEBOX|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|WS_MAXIMIZEBOX|
                      WS_CAPTION|WS_BORDER|WS_SYSMENU|WS_THICKFRAME,
                      CW_USEDEFAULT,0,CW_USEDEFAULT,0,
                      NULL,
                      NULL,
                      hInst,
                      NULL);
}

void OnPaint(HWND hwnd)
{
  PAINTSTRUCT PaintStruct;
  HDC dc = BeginPaint(hwnd, &PaintStruct);
  HDC MemDC = CreateCompatibleDC(dc);
  HBITMAP OldBitmap = (HBITMAP )SelectObject(MemDC, Bitmap);
  BitBlt(dc, 0, 0, ImageWidth, ImageHeight, MemDC, 0, 0, SRCCOPY);
  SelectObject(MemDC, OldBitmap);
  DeleteObject(MemDC);
  EndPaint(hwnd, &PaintStruct);
}

LRESULT CALLBACK MainWndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
  switch (msg)
  {
    case WM_DESTROY:
      PostQuitMessage(0);
      break;
    case WM_PAINT:
      OnPaint(hwnd);
      return TRUE;
    default:
      return DefWindowProc(hwnd,msg,wParam,lParam);
  }

  return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow)
{
  MSG msg;

  hInst = hInstance;
  if (!InitApplication())
    return 0;

  if ((hwndMain = CreateBitmapWndClassWnd()) == (HWND)0)
    return 0;
  ShowWindow(hwndMain,SW_SHOW);

  while (GetMessage(&msg, NULL, 0, 0))
  {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
  return msg.wParam;
}
Avatar billede bertelbrander Novice
08. februar 2009 - 20:17 #8
Ret enkelt, du skal bare linke til biblioteket gdi32, som med Dev-Cpp hedder libgdi32.a, fordi compileren bag Dev-Cpp er g++

Jeg har længst glemt hvordan du gør det med Dev-cpp, men jeg er ret sikker på at du kan finde svaret på google i løbet af et par minutter.
Avatar billede kimbork Nybegynder
08. februar 2009 - 22:39 #9
Nu har jeg søgt på google i 1 timme og 30 min men kan ikke finde nogte om at linke til biblioteket
Avatar billede bertelbrander Novice
08. februar 2009 - 23:02 #10
Avatar billede kimbork Nybegynder
08. februar 2009 - 23:19 #11
Så viser den et billed :)

Er der ikke en måde som ikke fylder så meget kode?

og det skal også over i det andet vindue som vi lavede i går og så ska man kunne vælge position og størelse på billedet :)
Avatar billede bertelbrander Novice
08. februar 2009 - 23:40 #12
Jeg havde også dette eksempel på lager, det er lidt enklere:
#include <windows.h>

#define IDC_STATIC_1 1201

HINSTANCE InstanceHandle;

LRESULT CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
  case WM_CREATE:
      {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | WS_VISIBLE | SS_BITMAP,  // Style
                      5, 5, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_1), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "sample.bmp", IMAGE_BITMAP, 100, 100, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      break;
  case WM_KEYDOWN:
      if(wParam == VK_F4)
      {
        PostQuitMessage(0);
      }
      break;
  }
  return DefWindowProc(hwndDlg, msg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, INT nCmdShow)
{
  InstanceHandle = hInstance;

  WNDCLASS wc;
  memset(&wc, 0, sizeof(WNDCLASS));
  wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
  wc.lpfnWndProc = DialogProc;
  wc.hInstance = InstanceHandle;
  wc.hbrBackground = (HBRUSH )(COLOR_BTNFACE + 1);
  wc.lpszClassName = "WhateverClass";
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  if(!RegisterClass(&wc))
      return FALSE;

  HWND WindowHandle = CreateWindow("WhateverClass",
                                    "Whatever", // Caption text
                                    WS_MINIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS |
                                    WS_CLIPCHILDREN | WS_MAXIMIZEBOX | WS_CAPTION | WS_BORDER | WS_SYSMENU,
                                    100, 100, 150, 150,  // Position
                                    NULL,
                                    NULL,
                                    InstanceHandle,
                                    0);
  MSG Msg;
  while(GetMessage(&Msg, WindowHandle, 0, 0xFFFF) > 0)
  {
      if(!IsDialogMessage(WindowHandle, &Msg))
      {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
      }
  }
  return 0;
}
Avatar billede kimbork Nybegynder
08. februar 2009 - 23:56 #13
Tak :)
Avatar billede kimbork Nybegynder
08. februar 2009 - 23:58 #14
http://www.freeimagehosting.net/uploads/d101f60380.jpg

Så skal vi ha et par text boxe ind i programmet :)

Altså overskriften og text boxen og ventuelt nogen knapper :)

Har du eventuelt noen exempler?
Avatar billede bertelbrander Novice
09. februar 2009 - 00:06 #15
Hvis du kikker på den dialogbox der er her: http://damb.dk/dialogtut.php kan du se at den har de elementer du skal bruge, undtagen billedet som vi nu har styr på.

Tutorialen er 9 små afsnit, og til slut i hvert afsnit er der et link til et færdigt program, så det er blot et spørgsmål om at klippe og klistre.
Avatar billede kimbork Nybegynder
09. februar 2009 - 00:31 #16
Jeg kunne altså ikke lige finde en textbox i dine exempler :)
Avatar billede bertelbrander Novice
09. februar 2009 - 01:12 #17
Der er en del enkelt-linie tekstbokse/editbokse, det er ret trivielt at lave dem om til at være multi-linie.
Avatar billede kimbork Nybegynder
09. februar 2009 - 12:34 #18
Hvis det bare ska lvære en text box hvad ska lder så stå i ID ???


CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Overskrift", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    5, 65, 120, 20, // position
                    hwndDlg, // Owner
                    (HMENU)(ResultEditId), // ID
                    InstanceHandle,  // The application
                    0);

Kim Bork
Avatar billede bertelbrander Novice
09. februar 2009 - 19:31 #19
Alle kontroller i din dialog-box skal have et unikt ID, den static du har, bruger dette ID:

#define IDC_STATIC_1 1201

Så det ville nok være logisk at lave et tilsvarende ID til din edit:

#define IDC_EDIT_1 1202

Og bruge den når du oprette den:

CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Overskrift", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    5, 65, 120, 20, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT_1), // ID
                    InstanceHandle,  // The application
                    0);

Eller du kan bruge en enumerator til at definere dine ID'er
Avatar billede kimbork Nybegynder
09. februar 2009 - 20:16 #20
Nu har jeg sat den ind en den viser ikke min text box. Hvorfor?

#include <windows.h>

#define IDC_STATIC_1 1201

#define IDC_EDIT_1 1202

HINSTANCE InstanceHandle;

LRESULT CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
  case WM_CREATE:
      {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | WS_VISIBLE | SS_BITMAP,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_1), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Head_img.bmp", IMAGE_BITMAP, 494, 150, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      break;
  case WM_KEYDOWN:
      if(wParam == VK_F4)
      {
        PostQuitMessage(0);
      }
      break;
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Overskrift", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    500, 300, 300, 300, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT_1), // ID
                    InstanceHandle,  // The application
                    0);

  }
  return DefWindowProc(hwndDlg, msg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, INT nCmdShow)
{
  InstanceHandle = hInstance;

  WNDCLASS wc;
  memset(&wc, 0, sizeof(WNDCLASS));
  wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
  wc.lpfnWndProc = DialogProc;
  wc.hInstance = InstanceHandle;
  wc.hbrBackground = (HBRUSH )(COLOR_BTNFACE + 1);
  wc.lpszClassName = "WhateverClass";
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  if(!RegisterClass(&wc))
      return FALSE;

  HWND WindowHandle = CreateWindow("WhateverClass",
                                    "Whatever", // Caption text
                                    WS_MINIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS |
                                    WS_CLIPCHILDREN | WS_MAXIMIZEBOX | WS_CAPTION | WS_BORDER | WS_SYSMENU,
                                    100, 100, 500, 600,  // Position
                                    NULL,
                                    NULL,
                                    InstanceHandle,
                                    0);
                                   
  MSG Msg;
  while(GetMessage(&Msg, WindowHandle, 0, 0xFFFF) > 0)
  {
      if(!IsDialogMessage(WindowHandle, &Msg))
      {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
      }
  }
  return 0;
}
Avatar billede bertelbrander Novice
09. februar 2009 - 20:58 #21
Du skal nok finde et mere passende sted at oprette din edit-contorl. Den CreateWindowEx der skal oprette den bliver aldrig kaldt.

Prøv at læse lidt på switch sætninger i din C++ begynderbog.
Avatar billede kimbork Nybegynder
09. februar 2009 - 21:15 #22
kan man endre på baggrundsfarven i text boxen så det bliver helt hvidt?

Og kan man ikke helt fjærne maximizeboxen så den sledt ikke er der jeg ved godt at man bare kan fjerne WS_MAXIMIZEBOX men så er den der ju stadig man kan bare ike trykke på den?
Avatar billede kimbork Nybegynder
09. februar 2009 - 21:28 #23
Så det begynder at ligne noget :)

Så skal jeg ha 2 knapper
Avatar billede bertelbrander Novice
09. februar 2009 - 21:29 #24
Grunden til at editboksen er grå og ikke hvid er at den er read-only, hvis du fjerner ES_READONLY bliver den hvid.

Jeg ved ikke om du kan fjerne maximize boksen helt, har du ikke vigtigere problemer? Ellers må du i gang med google.
Avatar billede kimbork Nybegynder
09. februar 2009 - 21:35 #25
okay jo jeg har viktigere problemer nemlig mine knapper
Avatar billede kimbork Nybegynder
09. februar 2009 - 21:48 #26
Hvis jeg fjerner readonly så kan man ju slett texten i textboxene :(
Avatar billede kimbork Nybegynder
09. februar 2009 - 21:57 #27
Så er første side af it program færdigt :)
Avatar billede kimbork Nybegynder
09. februar 2009 - 21:57 #28
#include <windows.h>

#define IDC_STATIC_1 1201

#define IDC_EDIT_1 1202

#define IDC_BUTTON_1 1203

HINSTANCE InstanceHandle;

LRESULT CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
  case WM_CREATE:
      {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | WS_VISIBLE | SS_BITMAP,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_1), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Test.bmp", IMAGE_BITMAP, 494, 150, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Overskrift", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 160, 475, 40, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Text-Box", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 210, 475, 300, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Afslut",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  10, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Acepter",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  364, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
      break;
  case WM_KEYDOWN:
      if(wParam == VK_F4)
      {
        PostQuitMessage(0);
      }
      break;
  }
  return DefWindowProc(hwndDlg, msg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, INT nCmdShow)
{
  InstanceHandle = hInstance;

  WNDCLASS wc;
  memset(&wc, 0, sizeof(WNDCLASS));
  wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
  wc.lpfnWndProc = DialogProc;
  wc.hInstance = InstanceHandle;
  wc.hbrBackground = (HBRUSH )(COLOR_BTNFACE + 1);
  wc.lpszClassName = "WhateverClass";
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  if(!RegisterClass(&wc))
      return FALSE;

  HWND WindowHandle = CreateWindow("WhateverClass",
                                    "Whatever", // Caption text
                                    WS_MINIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS |
                                    WS_CLIPCHILDREN | WS_MAXIMIZEBOX | WS_CAPTION | WS_BORDER | WS_SYSMENU,
                                    100, 100, 500, 600,  // Position
                                    NULL,
                                    NULL,
                                    InstanceHandle,
                                    0);
                                   
  MSG Msg;
  while(GetMessage(&Msg, WindowHandle, 0, 0xFFFF) > 0)
  {
      if(!IsDialogMessage(WindowHandle, &Msg))
      {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
      }
  }
  return 0;
}
Avatar billede kimbork Nybegynder
09. februar 2009 - 22:01 #29
Jeg skal ha  knappen "afslut" til at lukke programmet og knappen "acepter" til at åbne et nyt program i samme vindue altså skifte side :)
Avatar billede bertelbrander Novice
09. februar 2009 - 22:20 #30
For at få den til at afslutte når du trykker på den rigtige knap kan du tilføje:
  case WM_COMMAND:
      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON_1)
      {
        DestroyWindow(hwndDlg);
      }
      break;


IDC_BUTTON_1 skal være ID'en på den knap der får den til at afslutte.
Som jeg skrev skal alle kontroller have et unikt ID, begge dine knapper har det samme ID, det går ikke, for så kan man ikke vide hvilken knap der er trykket på.

Jeg ved ikke hvad du mener med "at åbne et nyt program i samme vindue altså skifte side "
Avatar billede kimbork Nybegynder
09. februar 2009 - 22:47 #31
http://www.freeimagehosting.net/uploads/d101f60380.jpg

Det er dette jeg mener den skal blive til mit program 2 bare i samme vindue altså ligsom en næste knap :)
Avatar billede bertelbrander Novice
09. februar 2009 - 22:52 #32
Du kan kalde EnableWindow for at disable de kontroller der er på "side 1" og så oprette de kontroller der skal være på "side 2" med CreateWindow.
Du får nok brug for funktionen GetDlgItem.
Avatar billede kimbork Nybegynder
09. februar 2009 - 22:58 #33
Du har vel ikke et exempel??

Jeg har nemlig ingen anelse om hvordan det skal gøres :)

Her er koden --->

#include <windows.h>

#define IDC_STATIC_1 1201

#define IDC_EDIT1_1 1202

#define IDC_EDIT2_1 1203

#define IDC_BUTTON1_1 1204

#define IDC_BUTTON2_1 1205

HINSTANCE InstanceHandle;

LRESULT CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
  case WM_CREATE:
      {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | WS_VISIBLE | SS_BITMAP,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_1), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Test.bmp", IMAGE_BITMAP, 494, 150, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Overskrift", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 160, 475, 40, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT1_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Text-Box", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 210, 475, 300, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT2_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Afslut",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  10, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON1_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Acepter",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  364, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON2_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
      break;
  case WM_KEYDOWN:
      if(wParam == VK_F4)
      {
        PostQuitMessage(0);
      }
      break;
      case WM_COMMAND:
      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON1_1)
      {
        DestroyWindow(hwndDlg);
      }
      break;
  }
  return DefWindowProc(hwndDlg, msg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, INT nCmdShow)
{
  InstanceHandle = hInstance;

  WNDCLASS wc;
  memset(&wc, 0, sizeof(WNDCLASS));
  wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
  wc.lpfnWndProc = DialogProc;
  wc.hInstance = InstanceHandle;
  wc.hbrBackground = (HBRUSH )(COLOR_BTNFACE + 1);
  wc.lpszClassName = "WhateverClass";
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  if(!RegisterClass(&wc))
      return FALSE;

  HWND WindowHandle = CreateWindow("WhateverClass",
                                    "Whatever", // Caption text
                                    WS_MINIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS |
                                    WS_CLIPCHILDREN | WS_MAXIMIZEBOX | WS_CAPTION | WS_BORDER | WS_SYSMENU,
                                    100, 100, 500, 600,  // Position
                                    NULL,
                                    NULL,
                                    InstanceHandle,
                                    0);
                                   
  MSG Msg;
  while(GetMessage(&Msg, WindowHandle, 0, 0xFFFF) > 0)
  {
      if(!IsDialogMessage(WindowHandle, &Msg))
      {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
      }
  }
  return 0;
}
Avatar billede bertelbrander Novice
09. februar 2009 - 23:13 #34
Det er mandag, klokken er mange og jeg er træt, så det er måske på tide at du selv kikker på funktionerne på MSDN og får noget strikket sammen...
Avatar billede kimbork Nybegynder
09. februar 2009 - 23:20 #35
kay jeg vil selv se idt på det til i morgen aften :)
Avatar billede bertelbrander Novice
09. februar 2009 - 23:30 #36
Ok, du skal også finde ud af hvordan du sender en email fra din applikation.
Avatar billede kimbork Nybegynder
09. februar 2009 - 23:41 #37
Ja, jeg prøver mig frem :)

"Google is your friend"
Avatar billede kimbork Nybegynder
10. februar 2009 - 17:49 #38
Jeg har altså ikke fundet ud af hvordan man skifter vindue :(

Men jeg tror at jeg har fundet en e-mal sender :)
Avatar billede bertelbrander Novice
10. februar 2009 - 19:59 #39
Hvis du starter med at oprette et andet billede:
      {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | WS_DISABLED | SS_BITMAP ,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_2), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Test2.bmp", IMAGE_BITMAP, 494, 150, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image 2", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_2, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
Det er ca. det samme som det første billede, bemærk dog at det er WS_DISABLED og ikke WS_VISIBLE, og at ID'et er et andet.

Så kan du skrifte fra det første billede til det andet med denne kode, som placeres under WM_COMMAND:

      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON2_1)
      {
        SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
        InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_1), 0, TRUE);
        InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_2), 0, TRUE);
        InvalidateRect(hwndDlg, 0, TRUE);
      }

Så skal du bare gøre det samme for de andre kontroller.
Avatar billede kimbork Nybegynder
10. februar 2009 - 20:02 #40
jamen hvordan får jeg programmet til at slette alt der er i vinduet og erstate det med det andet som skal være der ved at trykke på en knap?
Avatar billede kimbork Nybegynder
10. februar 2009 - 20:12 #41
Hvor skal jeg sette den kode ind som du skrev og hvor er WM_COMMAND?
Avatar billede kimbork Nybegynder
10. februar 2009 - 20:18 #42
Hvor skal den kode sætes ind for at virke :)
{
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | WS_DISABLED | SS_BITMAP ,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_2), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Test.bmp", IMAGE_BITMAP, 494, 150, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image 2", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_2, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
Avatar billede kimbork Nybegynder
10. februar 2009 - 20:22 #43
og skal man lave en #define IDC_STATIC_2 1206?
Avatar billede bertelbrander Novice
10. februar 2009 - 21:55 #44
Ideen er at man viser de nye elementer og disabler de gamle, derved skrifter indholdet.
Du får lige hele min kode:

#include <windows.h>
#define IDC_STATIC_1 1201
#define IDC_EDIT1_1 1202
#define IDC_EDIT2_1 1203
#define IDC_BUTTON1_1 1204
#define IDC_BUTTON2_1 1205
#define IDC_STATIC_2 1206

HINSTANCE InstanceHandle;

LRESULT CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
  case WM_CREATE:
      {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | SS_BITMAP | WS_VISIBLE,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_1), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Test.bmp", IMAGE_BITMAP, 494, 150, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image 1", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | WS_DISABLED | SS_BITMAP ,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_2), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Test2.bmp", IMAGE_BITMAP, 494, 150, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image 2", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_2, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Overskrift", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 160, 475, 40, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT1_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Text-Box", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 210, 475, 300, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT2_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Afslut",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  10, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON1_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Acepter",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  364, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON2_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
      break;
  case WM_KEYDOWN:
      if(wParam == VK_F4)
      {
        PostQuitMessage(0);
      }
      break;
  case WM_COMMAND:
      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON1_1)
      {
        DestroyWindow(hwndDlg);
      }
      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON2_1)
      {
        SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
        InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_1), 0, TRUE);
        InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_2), 0, TRUE);
        InvalidateRect(hwndDlg, 0, TRUE);
      }
      break;
  }
  return DefWindowProc(hwndDlg, msg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, INT nCmdShow)
{
  InstanceHandle = hInstance;

  WNDCLASS wc;
  memset(&wc, 0, sizeof(WNDCLASS));
  wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
  wc.lpfnWndProc = DialogProc;
  wc.hInstance = InstanceHandle;
  wc.hbrBackground = (HBRUSH )(COLOR_BTNFACE + 1);
  wc.lpszClassName = "WhateverClass";
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  if(!RegisterClass(&wc))
      return FALSE;

  HWND WindowHandle = CreateWindow("WhateverClass",
                                    "Whatever", // Caption text
                                    WS_MINIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS |
                                    WS_CLIPCHILDREN | WS_MAXIMIZEBOX | WS_CAPTION | WS_BORDER | WS_SYSMENU,
                                    100, 100, 500, 600,  // Position
                                    NULL,
                                    NULL,
                                    InstanceHandle,
                                    0);

  MSG Msg;
  while(GetMessage(&Msg, WindowHandle, 0, 0xFFFF) > 0)
  {
      if(!IsDialogMessage(WindowHandle, &Msg))
      {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
      }
  }
  return 0;
}
Avatar billede kimbork Nybegynder
10. februar 2009 - 22:02 #45
Tak jeg vil gå videre med det :)

Hvis du ved hvordan man skal sende en e-mail fra programet må du godt hjælpe mig med det for jeg har ingen anelse om det.
Avatar billede bertelbrander Novice
10. februar 2009 - 22:05 #46
Jeg ved ikke hvordan man sender emails, jeg kunne sikkert godt finde ud af det, men det bliver ikke foreløbigt.
Jeg tror Arne ved det, måske skulle du oprette et separat spørgsmål til det.
Avatar billede kimbork Nybegynder
10. februar 2009 - 22:07 #47
okay men jeg har lige et problem jeg har fundet ud af at den ikke sleter det gamle billed fra programet og setter et nyt ind den sætter bare et nyt billed ovenpå det gamle.
Avatar billede bertelbrander Novice
10. februar 2009 - 22:30 #48
Hvad er problemet? Det gamle billede er stadig i programmet, men hvis ikke det kan ses?

Du kan evt. prøve at nøjes med at have én static og så skifte billedet med:
SendDlgItemMessage(hwndDlg, IDC_STATIC_1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
Avatar billede kimbork Nybegynder
10. februar 2009 - 22:57 #49
det billed jeg skal have på de 2 sider er ens og skal side det samme sted problemet omer bare med text boxene de skal ju ikke være der på næste side :)
Avatar billede kimbork Nybegynder
10. februar 2009 - 22:59 #50
eller jo der skal være de 2 tet boxe også men d skal bare endre størelse og text :)
Avatar billede bertelbrander Novice
10. februar 2009 - 23:34 #51
Metoden til at skifte mellem tekstboxe er den samme som metoden til at skifte mellem billeder. Jeg brugt bare billedet som et eksempel.
Avatar billede kimbork Nybegynder
10. februar 2009 - 23:41 #52
okay
Avatar billede kimbork Nybegynder
11. februar 2009 - 22:48 #53
dit exempel sletter ikke det gamle den smider bare noget nyt ovenpå :)
Avatar billede bertelbrander Novice
11. februar 2009 - 22:53 #54
Prøv lige at lave et eksempel der ikke virker, så skal jeg få det til at virke. Jeg går ud fra at du med "sletter ikke det gamle" mener at det gamle stadig er synligt?
Avatar billede kimbork Nybegynder
11. februar 2009 - 23:28 #55
Når man trykker på Acepter knappen skal den slette alt i vinduet og sætte noget nyt ind :)
Avatar billede bertelbrander Novice
11. februar 2009 - 23:33 #56
Ja, det har jeg forstået...
Avatar billede kimbork Nybegynder
12. februar 2009 - 00:23 #57
Kan du så ikke lige lave det for mig fordi jeg tror ikke at jeg forstår hvd du mener
Avatar billede bertelbrander Novice
12. februar 2009 - 00:37 #58
Så har vi den igen: "kan du ikke lave"... Det var sådan set meningen at du selv skulle lave det.

Anyway, denne linje:

SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );

skjuler en kontrol, og denne viser en:

        SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );

For at være sikker på at systemet får gentegnet de kontroller man har skjult/vist, laver man en:

        InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_2), 0, TRUE);

Du skal bare vise de nye kontroller og skjule de gamle. Ret enkelt.
Avatar billede kimbork Nybegynder
12. februar 2009 - 00:56 #59
Prøv at se, hvis størelsen på billedet ikke skal være det samme så kommer problemet.

Man kan stadig se det gamle billed under det nye :(

#include <windows.h>
#define IDC_STATIC_1 1201
#define IDC_EDIT1_1 1202
#define IDC_EDIT2_1 1203
#define IDC_BUTTON1_1 1204
#define IDC_BUTTON2_1 1205
#define IDC_STATIC_2 1206

HINSTANCE InstanceHandle;

LRESULT CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
  case WM_CREATE:
      {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | SS_BITMAP | WS_VISIBLE,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_1), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Test.bmp", IMAGE_BITMAP, 494, 150, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image 1", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | WS_DISABLED | SS_BITMAP ,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_2), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Test2.bmp", IMAGE_BITMAP, 494, 100, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image 2", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_2, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "overskrift", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 160, 475, 40, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT1_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Text-Box", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 210, 475, 300, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT2_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Afslut",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  10, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON1_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Acepter",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  364, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON2_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
      break;
  case WM_KEYDOWN:
      if(wParam == VK_F4)
      {
        PostQuitMessage(0);
      }
      break;
  case WM_COMMAND:
      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON1_1)
      {
        DestroyWindow(hwndDlg);
      }
      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON2_1)
      {
      SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
      SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
      InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_2), 0, TRUE);
      }
      break;
  }
  return DefWindowProc(hwndDlg, msg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, INT nCmdShow)
{
  InstanceHandle = hInstance;

  WNDCLASS wc;
  memset(&wc, 0, sizeof(WNDCLASS));
  wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
  wc.lpfnWndProc = DialogProc;
  wc.hInstance = InstanceHandle;
  wc.hbrBackground = (HBRUSH )(COLOR_BTNFACE + 1);
  wc.lpszClassName = "WhateverClass";
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  if(!RegisterClass(&wc))
      return FALSE;

  HWND WindowHandle = CreateWindow("WhateverClass",
                                    "Whatever", // Caption text
                                    WS_MINIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS |
                                    WS_CLIPCHILDREN | WS_MAXIMIZEBOX | WS_CAPTION | WS_BORDER | WS_SYSMENU,
                                    100, 100, 500, 600,  // Position
                                    NULL,
                                    NULL,
                                    InstanceHandle,
                                    0);

  MSG Msg;
  while(GetMessage(&Msg, WindowHandle, 0, 0xFFFF) > 0)
  {
      if(!IsDialogMessage(WindowHandle, &Msg))
      {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
      }
  }
  return 0;
}
Avatar billede bertelbrander Novice
12. februar 2009 - 01:35 #60
Problemet er at den, afhængig af forholdene, ikke altid får gentegnet vinduet som den skal.
Prøv med denne sekvens i stedet:
      SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
      SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
      InvalidateRect(hwndDlg, 0, TRUE);
      SetWindowPos(hwndDlg, 0, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOSIZE);
Avatar billede kimbork Nybegynder
12. februar 2009 - 01:42 #61
Mange tak, så er det eneste jeg mangler ju bare e-mail senderen og så er jeg færdig :)
Avatar billede kimbork Nybegynder
12. februar 2009 - 01:50 #62
Dit exempel virker ikke på text boxene :)

#include <windows.h>
//Program Side 1
#define IDC_STATIC_1 1201
#define IDC_EDIT1_1 1202
#define IDC_EDIT2_1 1203
#define IDC_BUTTON1_1 1204
#define IDC_BUTTON2_1 1205
//Program Side 2
#define IDC_STATIC_2 1206
#define IDC_EDIT1_2 1207
#define IDC_EDIT2_2 1208

HINSTANCE InstanceHandle;

LRESULT CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
  case WM_CREATE:
//Program Side 1
      {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | SS_BITMAP | WS_VISIBLE,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_1), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Test.bmp", IMAGE_BITMAP, 494, 150, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image 1", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "overskrift", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 160, 475, 40, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT1_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Text-Box", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 210, 475, 300, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT2_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Afslut",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  10, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON1_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Acepter",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  364, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON2_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
//Program Side 2
                    {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | WS_DISABLED | SS_BITMAP ,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_2), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Test2.bmp", IMAGE_BITMAP, 494, 100, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image 2", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_2, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "overskrift 2", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 160, 475, 40, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT1_2), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Text-Box 2", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_READONLY,  // Style
                    10, 210, 475, 300, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_EDIT2_2), // ID
                    InstanceHandle,  // The application
                    0);
                    }
      break;
  case WM_KEYDOWN:
      if(wParam == VK_F4)
      {
        PostQuitMessage(0);
      }
      break;
  case WM_COMMAND:
      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON1_1)
      {
        DestroyWindow(hwndDlg);
      }
      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON2_1)
      {
      SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
      SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
      InvalidateRect(hwndDlg, 0, TRUE);
      SetWindowPos(hwndDlg, 0, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOSIZE);
      }
      {
      SetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT1_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT1_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
      SetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT1_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT1_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
      InvalidateRect(hwndDlg, 0, TRUE);
      SetWindowPos(hwndDlg, 0, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOSIZE);
      }{
      SetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT2_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT2_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
      SetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT2_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT2_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
      InvalidateRect(hwndDlg, 0, TRUE);
      SetWindowPos(hwndDlg, 0, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOSIZE);
      }
      break;
  }
  return DefWindowProc(hwndDlg, msg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, INT nCmdShow)
{
  InstanceHandle = hInstance;

  WNDCLASS wc;
  memset(&wc, 0, sizeof(WNDCLASS));
  wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
  wc.lpfnWndProc = DialogProc;
  wc.hInstance = InstanceHandle;
  wc.hbrBackground = (HBRUSH )(COLOR_BTNFACE + 1);
  wc.lpszClassName = "WhateverClass";
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  if(!RegisterClass(&wc))
      return FALSE;

  HWND WindowHandle = CreateWindow("WhateverClass",
                                    "Whatever", // Caption text
                                    WS_MINIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS |
                                    WS_CLIPCHILDREN | WS_MAXIMIZEBOX | WS_CAPTION | WS_BORDER | WS_SYSMENU,
                                    100, 100, 500, 600,  // Position
                                    NULL,
                                    NULL,
                                    InstanceHandle,
                                    0);

  MSG Msg;
  while(GetMessage(&Msg, WindowHandle, 0, 0xFFFF) > 0)
  {
      if(!IsDialogMessage(WindowHandle, &Msg))
      {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
      }
  }
  return 0;
}
Avatar billede bertelbrander Novice
12. februar 2009 - 02:07 #63
Du skal huske at de edit-bokse (og andre kontroller) der skal være på "side 2" ikke skal have WS_VISIBLE når de oprettes, derimod skal de have WS_DISABLED

Og så skal du lige have styr på {} så det hele kommer ind under if(...) og du behøver kun SetWindowPos én gang:

      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON2_1)
      {
        SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT1_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT1_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT1_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT1_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT2_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT2_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT2_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT2_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
        InvalidateRect(hwndDlg, 0, TRUE);
        SetWindowPos(hwndDlg, 0, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOSIZE);
      }
Avatar billede kimbork Nybegynder
12. februar 2009 - 02:12 #64
Nu virker det men texten bliver grå når man har trykket på Acepter knappen :)
Avatar billede bertelbrander Novice
12. februar 2009 - 20:02 #65
Mon ikke du bare skal fjerne dine ES_READONLY ?
Avatar billede kimbork Nybegynder
12. februar 2009 - 21:52 #66
Det virker ikke prøv selv :)

#include <windows.h>
//Program Side 1
#define IDC_STATIC_1 1201
#define IDC_OVER_1 1202
#define IDC_TEXT_1 1203
#define IDC_BUTTON1_1 1204
#define IDC_BUTTON2_1 1205
//Program Side 2
#define IDC_STATIC_2 1206
#define IDC_OVER_2 1207
#define IDC_TEXT_2 1208
#define IDC_BUTTON1_2 1209
#define IDC_BUTTON2_2 1210

HINSTANCE InstanceHandle;

LRESULT CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
  case WM_CREATE:
//Program Side 1
      {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | SS_BITMAP | WS_VISIBLE,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_1), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Head_img.bmp", IMAGE_BITMAP, 494, 150, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image 1", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "overskrift", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER,  // Style
                    10, 160, 475, 40, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_OVER_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Text-Box", // Initial Text
                    WS_CHILD | WS_VISIBLE | ES_NUMBER,  // Style
                    10, 210, 475, 300, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_TEXT_1), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Afslut",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  10, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON1_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Acepter",                        // Button Text
                  WS_CHILD | WS_VISIBLE | WS_TABSTOP,  // Style
                  364, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON2_1), // ID
                  InstanceHandle,  // The application
                  0);
                    }
//Program Side 2
                    {
        CreateWindow("STATIC",
                      "0", // Initial Text
                      WS_CHILD | WS_DISABLED | SS_BITMAP ,  // Style
                      0, 0, 100, 100, // position
                      hwndDlg, // Owner
                      (HMENU)(IDC_STATIC_2), // ID
                      InstanceHandle,  // The application
                      0);
        HBITMAP Bitmap = (HBITMAP )LoadImage(0, "Head_img.bmp", IMAGE_BITMAP, 494, 150, LR_LOADFROMFILE);
        if(!Bitmap)
            MessageBox(hwndDlg, "No Image 2", "---", 0);
        SendDlgItemMessage(hwndDlg, IDC_STATIC_2, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM )Bitmap);
      }
      {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "overskrift 2", // Initial Text
                    WS_CHILD | WS_DISABLED | ES_NUMBER,  // Style
                    10, 160, 475, 40, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_OVER_2), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindowEx(WS_EX_CLIENTEDGE,
                    "EDIT",
                    "Text-Box 2", // Initial Text
                    WS_CHILD | WS_DISABLED | ES_NUMBER,  // Style
                    10, 210, 475, 300, // position
                    hwndDlg, // Owner
                    (HMENU)(IDC_TEXT_2), // ID
                    InstanceHandle,  // The application
                    0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Afslut",                        // Button Text
                  WS_CHILD | WS_DISABLED | WS_TABSTOP,  // Style
                  10, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON1_2), // ID
                  InstanceHandle,  // The application
                  0);
                    }
                    {
      CreateWindow("BUTTON",
                  "Send",                        // Button Text
                  WS_CHILD | WS_DISABLED | WS_TABSTOP,  // Style
                  364, 525, 120, 30, // position
                  hwndDlg, // Owner
                  (HMENU)(IDC_BUTTON2_2), // ID
                  InstanceHandle,  // The application
                  0);
                    }
      break;
  case WM_KEYDOWN:
      if(wParam == VK_F4)
      {
        PostQuitMessage(0);
      }
      break;
  case WM_COMMAND:
      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON1_1)
      {
        DestroyWindow(hwndDlg);
      }
      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON2_1)
      {
        SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_STATIC_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_OVER_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_OVER_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_OVER_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_OVER_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_TEXT_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_TEXT_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_TEXT_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_TEXT_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_BUTTON1_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_BUTTON1_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_BUTTON1_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_BUTTON1_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_BUTTON2_1), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_BUTTON2_1), GWL_STYLE) & ~WS_VISIBLE) | WS_DISABLED );
        SetWindowLong(GetDlgItem(hwndDlg, IDC_BUTTON2_2), GWL_STYLE, (GetWindowLong(GetDlgItem(hwndDlg, IDC_BUTTON2_2), GWL_STYLE) | WS_VISIBLE) & ~WS_DISABLED );
        InvalidateRect(hwndDlg, 0, TRUE);
        SetWindowPos(hwndDlg, 0, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOSIZE);
      }
      if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON1_2)
      {
        DestroyWindow(hwndDlg);
      }
      break;
  }
  return DefWindowProc(hwndDlg, msg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, INT nCmdShow)
{
  InstanceHandle = hInstance;

  WNDCLASS wc;
  memset(&wc, 0, sizeof(WNDCLASS));
  wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
  wc.lpfnWndProc = DialogProc;
  wc.hInstance = InstanceHandle;
  wc.hbrBackground = (HBRUSH )(COLOR_BTNFACE + 1);
  wc.lpszClassName = "WhateverClass";
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  if(!RegisterClass(&wc))
      return FALSE;

  HWND WindowHandle = CreateWindow("WhateverClass",
                                    "Whatever", // Caption text
                                    WS_MINIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS |
                                    WS_CLIPCHILDREN | WS_MAXIMIZEBOX | WS_CAPTION | WS_BORDER | WS_SYSMENU,
                                    100, 100, 500, 600,  // Position
                                    NULL,
                                    NULL,
                                    InstanceHandle,
                                    0);

  MSG Msg;
  while(GetMessage(&Msg, WindowHandle, 0, 0xFFFF) > 0)
  {
      if(!IsDialogMessage(WindowHandle, &Msg))
      {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
      }
  }
  return 0;
}
Avatar billede bertelbrander Novice
12. februar 2009 - 22:24 #67
Det lader til at du skal lade være med at bruge WS_DISABLED når du opretter de edit boxe der er på side 2. Du kan også genbruge de samme edit-boxe på begge sider, og bare putte noget nyt tekst ind i dem.
Avatar billede kimbork Nybegynder
12. februar 2009 - 22:28 #68
hvordan gør man så det det eneste jeg skal ha endret er texten og størelsen :)
Avatar billede bertelbrander Novice
12. februar 2009 - 22:36 #69
På et eller andet tidspunkt skal du have kikket på SetDlgItemText og GetDlgItemText, start her:
http://msdn.microsoft.com/en-us/library/ms645489(VS.85).aspx

Du kan se hvordan du kan ændre fonten her:
http://damb.dk/dialogtut09.php

Men ellers kan jeg anbefale dig at sætte dig ind i brugen af punktum og komma ved konstruktion af danske sætninger, de gør det muligt for andre at få et indblik i hvad du mener...
Avatar billede kimbork Nybegynder
12. februar 2009 - 23:09 #70
Jeg kan altså stadig ikke finde ud af det :(
Avatar billede bertelbrander Novice
12. februar 2009 - 23:46 #71
Hvad kan du altså ikke finde ud af?
Avatar billede kimbork Nybegynder
12. februar 2009 - 23:59 #72
at få text boxene til at skifte størelse og text når jeg trykker Acepter
Avatar billede kimbork Nybegynder
12. februar 2009 - 23:59 #73
Uden at de bliver grå :)
Avatar billede bertelbrander Novice
13. februar 2009 - 00:14 #74
Åh, det er størrelsen på selve tekstboxen du vil have ændret.
Prøvede du lade være med at bruge WS_DISABLED?

Ellers kan du prøve at bruge MoveWindow til at ændre størrelsen på edit-kontrollen:
http://msdn.microsoft.com/en-us/library/ms633534(VS.85).aspx
HWND parameteren får du med GetDlgItem, som sædvanligt.
Avatar billede kimbork Nybegynder
13. februar 2009 - 18:20 #75
kan ikke finde ud af det
Avatar billede bertelbrander Novice
13. februar 2009 - 18:46 #76
Prøv at skrive lidt mere end "kan ikke finde ud af det".

Hvad er det, helt præcist, du ikke kan finde ud af?
Hvad har du prøvet?
Hvad skete der da du gjorde det?
Jeg er på vej ud af døren, og er ikke rigtigt online igen før mandag.
Avatar billede kimbork Nybegynder
14. februar 2009 - 22:23 #77
Jeg tror bare at jeg gør det på den nemme måde :)

Når man trykker Acepter så skal vinduet lukke og så skal der åbne et nydt vindue :)
Avatar billede kimbork Nybegynder
16. februar 2009 - 13:38 #78
Tak, for hjælpen :(
Avatar billede kimbork Nybegynder
13. april 2009 - 00:23 #79
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester