Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2010, 14:11   #1
Nikita1111
 
Регистрация: 19.09.2010
Сообщений: 7
По умолчанию ОШИБКА!!!!!!!!

Есть 9 кнопок! при нажатии на кнопку должен загружатся раставое изображение! в параметрах кнопок стоит разрешения на иконку! в чем траблы не пойму!
Я НОВИЧЕК прошу сильно не выраатся!

выдаеттакие вот ошибки:
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "int __stdcall DlgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?DlgProc@@YGHPAUHWND__@@IIJ@Z) в функции _WinMain@16 C:\Users\Slavik\Documents\Visual Studio 2010\Projects\DZ\DZ\DZ.obj DZ
Ошибка 2 error LNK1120: 1 неразрешенных внешних элементов C:\Users\Slavik\Documents\Visual Studio 2010\Projects\DZ\Debug\DZ.exe 1 1 DZ


Код:
#include <windows.h>
#include "resource.h"


HWND hButton1,hButton2,hButton3,hButton4,hButton5,hButton6,hButton7,hButton8,hButton9;
HBITMAP hBmp[2];

BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
	return DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);	
}

BOOL CALBACK(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch(message)
	{
		case WM_CLOSE:
			EndDialog(hWnd,0);
			return TRUE;

		case WM_INITDIALOG:
			{			
				hButton1=GetDlgItem(hWnd,IDC_BUTTON1);
				hButton2=GetDlgItem(hWnd,IDC_BUTTON2);
				hButton3=GetDlgItem(hWnd,IDC_BUTTON3);
				hButton4=GetDlgItem(hWnd,IDC_BUTTON4);
				hButton5=GetDlgItem(hWnd,IDC_BUTTON5);
				hButton6=GetDlgItem(hWnd,IDC_BUTTON6);
				hButton7=GetDlgItem(hWnd,IDC_BUTTON7);
				hButton8=GetDlgItem(hWnd,IDC_BUTTON8);
				hButton9=GetDlgItem(hWnd,IDC_BUTTON9);
				for(int i=0;i<2;i++)hBmp[i]=LoadBitmap(GetModuleHandle(0),MAKEINTRESOURCE(IDB_BITMAP1+i));
			}
		case WM_COMMAND:

			if(LOWORD(wParam)== IDC_BUTTON1)
			{
				
				SendMessage(hButton1, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON2)
			{
				SendMessage(hButton2, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON3)
			{
				SendMessage(hButton3, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON4)
			{
				SendMessage(hButton4, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON5)
			{
				SendMessage(hButton5, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON6)
			{
				SendMessage(hButton6, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON7)
			{
				SendMessage(hButton7, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON8)
			{
				SendMessage(hButton8, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON9)
			{
				SendMessage(hButton9, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}		

			return TRUE;
	}

	return FALSE;
}
Nikita1111 вне форума Ответить с цитированием
Старый 19.09.2010, 14:24   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
BOOL CALBACK(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
при реализации может правильно напишите имя и параметры процедуры?
(BOOL CALLBACK DlgProc)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.09.2010, 14:25   #3
Nikita1111
 
Регистрация: 19.09.2010
Сообщений: 7
По умолчанию

Все разобрался! большое спасибо! Там были и ещё ошибки!
Nikita1111 вне форума Ответить с цитированием
Старый 19.09.2010, 15:07   #4
Nikita1111
 
Регистрация: 19.09.2010
Сообщений: 7
По умолчанию

Код:
#include <windows.h>
#include "resource.h"

BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
HWND hButton1,hButton2,hButton3,hButton4,hButton5,hButton6,hButton7,hButton8,hButton9;
HBITMAP hBmp[2];



int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
	return DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);	
}

BOOL CALLBACK DlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch(message)
	{
		case WM_CLOSE:
			EndDialog(hWnd,0);
			return TRUE;

		case WM_INITDIALOG:
			{			
				hButton1=GetDlgItem(hWnd,IDC_BUTTON1);
				hButton2=GetDlgItem(hWnd,IDC_BUTTON2);
				hButton3=GetDlgItem(hWnd,IDC_BUTTON3);
				hButton4=GetDlgItem(hWnd,IDC_BUTTON4);
				hButton5=GetDlgItem(hWnd,IDC_BUTTON5);
				hButton6=GetDlgItem(hWnd,IDC_BUTTON6);
				hButton7=GetDlgItem(hWnd,IDC_BUTTON7);
				hButton8=GetDlgItem(hWnd,IDC_BUTTON8);
				hButton9=GetDlgItem(hWnd,IDC_BUTTON9);
				for(int i=0;i<2;i++)hBmp[i]=LoadBitmap(GetModuleHandle(0),MAKEINTRESOURCE(IDB_BITMAP1+i));
			}
		case WM_COMMAND:

			if(LOWORD(wParam)== IDC_BUTTON1)
			{
				SendMessage(hButton1, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));				
			}

			if(LOWORD(wParam)== IDC_BUTTON2)
			{
				SendMessage(hButton2, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON3)
			{
				SendMessage(hButton3, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON4)
			{
				SendMessage(hButton4, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON5)
			{
				SendMessage(hButton5, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON6)
			{
				SendMessage(hButton6, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON7)
			{
				SendMessage(hButton7, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON8)
			{
				SendMessage(hButton8, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}

			if(LOWORD(wParam)== IDC_BUTTON9)
			{
				SendMessage(hButton9, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));
			}		
			

			return TRUE;
	}

	return FALSE;
}
Подскажите какой функцией можно сделатьтак что бы при нажатии на кнопку левой кнопкой был рисунок один а при нажатии правой кнопки рисунок другой!
пробую чот не получается!
делал так:
Код:
if(LOWORD(wParam)== IDC_BUTTON1)
			{
		case WM_LBUTTONDOWN:
				SendMessage(hButton1, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[1]));				
			}
if(LOWORD(wParam)== IDC_BUTTON1)
			{
		case WM_RBUTTONDOWN:
				SendMessage(hButton1, BM_SETIMAGE,WPARAM(IMAGE_BITMAP),LPARAM(hBmp[0]));				
			}
Правильно мыслю или нет?
Nikita1111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nero - ошибка драйвера DMA. ошибка CRC NecRoMat Софт 5 09.05.2012 01:29
Это ошибка Delphi или моя ошибка??? bloodeagle Общие вопросы Delphi 3 12.11.2009 15:26
Ошибка в статье = ошибка в рограмме. Alex Cones Общие вопросы Delphi 14 29.07.2009 18:17
Ошибка в Аfor i:=1 to SI do. Пишит что ошибка в SI Алексей_xXx Помощь студентам 2 29.05.2009 00:09
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... infrared Помощь студентам 0 16.04.2009 17:44