---
title: "Dialog ruta."
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/69568-dialog-ruta"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "roj"
published: "2003-02-27T09:45:18.000Z"
updated: "2003-02-28T10:47:57.000Z"
replies: 10
views: 418
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/69568-dialog-ruta"
---

# Dialog ruta.

## #1 — roj, 2003-02-27T09:45Z

Någon som har något bra exempel på hur jag skapar en dialog ruta utan att använda MFC..?

Permalänk: https://www.webforum.nu/p/69568

## #2 — niko, 2003-02-27T17:36Z

Är osäker på om du verkligen menar en dialogruta eller kanske bara en MessageBox?

**Dialogruta**:
Skapa en dialogruta i resurseditorn (id: IDD_DIALOG1).

```
#include <windows.h>
BOOL CALLBACK myDlgProc(HWND hwndDlg, 
  UINT uMsg,     
  WPARAM wParam,
  LPARAM lParam) 

{
	switch(uMsg)
	{
	case(WM_INITDIALOG):
	//Kod som utföres när dialogrutan först visas.
	case(WM_COMMAND):
			switch(wParam)
		{
			case(IDOK):
				//Kod som utföres när OK-knappen klickas.
				return true;
				break;
			case(IDCANCEL):
				//Kod som utföres när Cancel-knappen klickas.
				EndDialog(hwndDlg,true);
				return true;
				break;
			default:
				break;
		}
	default:
		break;
	}
	return false;
}

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
	//Annan kod.
	DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, myDlgProc);
	//Annan kod.
	return 0;
}
```

**MessageBox**:

```
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
	//Annan kod.
	MessageBox(NULL,"Ditt meddelande.","Din fönstertitel.",MB_ICONINFORMATION);
	//Annan kod.
	return 0;
}
```

Permalänk: https://www.webforum.nu/p/965235

## #3 — roj, 2003-02-28T08:21Z

Jag menade Dialog ruta.. :) Tack för hjälpen.. Men fick det inte att funka utan fick dessa felen..

> C:\\Documents and Settings\\Administrator\\Desktop\\External Function Plug-in\\Source\\FMFunct.cpp(110) : error C2601: 'myDlgProc' : local function definitions are illegal
> 
> 
> C:\\Documents and Settings\\Administrator\\Desktop\\External Function Plug-in\\Source\\FMFunct.cpp(140) : error C2601: 'WinMain' : local function definitions are illegal

Permalänk: https://www.webforum.nu/p/965554

## #4 — PeW, 2003-02-28T08:45Z

Hur har du skapat projektet? Console eller win32 app?

Permalänk: https://www.webforum.nu/p/965571

## #5 — roj, 2003-02-28T09:10Z

win32 antar jag.. Vet inte riktigt det är ett gammalt program som jag ska fortsätta med.. Hur ser man lättast om det är win32 eller console?

Permalänk: https://www.webforum.nu/p/965588

## #6 — niko, 2003-02-28T09:37Z

Det låter som om du har klistrat in koden felaktigt.

*myDlgProc* är en fristående funktion och ska ligga utanför andra funktioner. Anropet till *DialogBox* placerar du sen där du vill ha det. Min kod var bara ett exempel. Har du redan en WinMain/Main så ska du inte skapa en ny.

Om du sen kompilerar en console- eller win32app har egentligen ingen betydelse förutom att du inte har tillgång till resurseditorn på samma sätt för en consoleapp. Du måste ju "designa" din dialogruta och då är det mer praktiskt om du valt projekttypen "Win32 Application".

Permalänk: https://www.webforum.nu/p/965616

## #7 — roj, 2003-02-28T10:00Z

Hmm har fortfarande problem.. 

Nu ligger både myDlgProc och winmain utanför alla funktioner..
Men jag får detta felet ändå..

> C:\\Documents and Settings\\Administrator\\Desktop\\of External Function Plug-in\\Source\\FMFunct.cpp(900) : error C2065: 'IDD_DIALOG1' : undeclared identifier

Permalänk: https://www.webforum.nu/p/965637

## #8 — niko, 2003-02-28T10:04Z

> **niko skrev:**
>
> Du måste ju "designa" din dialogruta

*Insert-\>Resource-\>Dialog-\>New*

Permalänk: https://www.webforum.nu/p/965642

## #9 — roj, 2003-02-28T10:17Z

Har jag gjort och den heter IDD_DIALOG1

Det e ju det som e konstigt..

Permalänk: https://www.webforum.nu/p/965647

## #10 — roj, 2003-02-28T10:34Z

Okej jag hitta vad som var fel.. Nu kan jag kompilera utan
problem men det blir inget fönster. Vilken rad/rader ska jag köra
för att få fram mitt fönster.. Jag vill nu Också kunna göra detta från en funktion. Tack för att ni tar er tid.. :)

Permalänk: https://www.webforum.nu/p/965658

## #11 — niko, 2003-02-28T10:47Z

OK. Du upptäckte att du var tvungen att inkludera "resource.h"?

Varför fönstret inte visas vet jag inte. Det ska räcka med att anropa *DialogBox* precis var du vill.

Det enda jag kan tänka mig är att du egentligen inte kompilerar resurserna.

Högerklicka på "Resource Files" i fileviewen välj "Add files to folder" och browsa fram till "Script1.rc", om den heter så. Sen ska det funka.

Permalänk: https://www.webforum.nu/p/965672

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/69568-dialog-ruta
