所以我自己有一个包含两个文件的项目,AT.c和main.c(我使用DEV-C ++)。 AT.c包含我需要的所有计算内容,使用I / O命令行并且自身工作相对较好。但是,由于我需要一个用于该程序的GUI,我还得到了main.c文件,它基本上创建了一个带有文本框的窗口,供我输入数字。
无论如何,现在我有点卡住,因为我不知道如何从这些文本框中读取AT.c而不是使用scanf方法。我想我应该在两个代码之间做一些声明或链接,但我还没有找到任何可以帮助的东西。
代码是main.c是在Dev-C ++中创建新的Windows应用程序项目时的起始代码。我只改变了LRESULTCALLBACK部分。
#define ID_BUTTON 1
#define ID_TEXTBOX 2
static HWND hwndA;
static HWND hwndB;
/* This function is called by the Windows function DispatchMessage() */
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) /* handle the messages */
{
case WM_CREATE:{
CreateWindow(TEXT("Button"), TEXT("Generate"),
WS_CHILD | WS_VISIBLE,
10, 160, 80, 20,
hwnd, (HMENU) ID_BUTTON, NULL, NULL
);
hwndA = CreateWindow(TEXT("EDIT"), TEXT(""),
WS_VISIBLE | WS_CHILD | WS_BORDER,
190, 130, 70, 15,
hwnd, (HMENU) ID_TEXTBOX, NULL, NULL
);
hwndB = CreateWindow(TEXT("EDIT"), TEXT(""),
WS_VISIBLE | WS_CHILD | WS_BORDER,
260, 130, 70, 15,
hwnd, (HMENU) ID_TEXTBOX, NULL, NULL
);
break;
}
case WM_COMMAND:{
if (LOWORD(wParam) == ID_BUTTON) {
char wot[256];
GetWindowText(hwndA, wot, 4);
SetWindowText(hwndB, wot);
}
}
break;
}
case WM_DESTROY:
PostQuitMessage (0); /* send a WM_QUIT to the message queue */
break;
default: /* for messages that we don't deal with */
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
AT.c只是一个很大但很简单的计算程序。 像
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int a, b, c;
main(){
scanf("%d", &a);
scanf("%d", &b);
printf("\n%d", a+b);
system("pause");
}
只是一堆ifs和循环。
答案 0 :(得分:0)
我假设您已将AT.C
和MAIN.C
添加到项目中。您可以轻松地进行沟通,将它们写在不同的文件中并不重要,除非我没有理解这个问题。
在file1.C中:
#include "headers.h"
//..
char Input_Text[256];
void Function_in_file1(const char *buf)
{
//..
}
//..
在file2.C中:
#include "headers.h"
//..
extern char Input_Text[256];
void Function_in_file1(const char *buf);//let the compiler know this is a valid function and you wrote it somewhere else
//...
case WM_COMMAND:{
if (LOWORD(wParam) == ID_BUTTON) {
char temp[50];
GetWindowText(hwndA, temp, 4);
Function_in_file1(temp); //call Function_in_file1() in file1.C
//or
GetWindowText(hwndA, Input_Text, 4);//Input_Text is available in file1.C
}
}