PDA

View Full Version : tạo các nút và viết code trong VC như thế nào?


genius
12-11-2005, 10:40 AM
tui đã đọc một ít quyển v c++ rùi
tui thấy tạo các nút lệnh và tạo một menu là đơn giản như cho tôi hỏi mình phải chèn code vao trong cac nút đó như thế nào
các nút như exit thì dễ còn muốn làm một chương trình như sau thì tui chưa làm được các bạn có thế giúp mình khônng?
mình muốn tạo các nút sao cho khi nhấn vào thì sẽ thực hiện như sau:
vidu bài duới đây thì nhấn vào nút thêm từ thì ta có thế thêm được từ
còn nhấn nút tra từ thì có thế tra được
điều này qua dễ trong dos như bài dưới đây:
mong các bạn giúp mình

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
char luachon='t';
void themtu();
void timkiem();
void menu()
{
clrscr();
cout<<"\n-------------TU DIEN-------------\n";
cout<<"1 . them tu dien (bam phim 1)\n";
cout<<"2 . tra tu dien (bam phim 2)\n";
cout<<"3 . ket thuc (bam phim 3)\n";
cout<<"\n\nlua chon cua ban : ";cin>>luachon;
if (luachon == '1') themtu();
if (luachon == '2') timkiem();
}
void themtu()
{
char s1[100],s2[200];
FILE *f1,*f2;
cout<<"\ntu tieng Anh : ";gets(s1);
cout<<"\ntu tieng Viet: ";gets(s2);
f1=fopen("ta.txt","a");
f2=fopen("tv.txt","a");
fputs(s1,f1);fputs(s2,f2);
fprintf(f1,"\n");fprintf(f2,"\n");
cout<<"\nda cap nhat vao co so du lieu tu "<<s1<<"\n";
fclose(f1);fclose(f2);
}
int sosanh(char t[100],char k[100])
{
int dem;
for (dem = 0; dem < (strlen(t)-2); dem++)
if (t[dem] != k[dem]) return(1);
return(0);
}
void timkiem()
{
char s1[100],s2[200],s3[100];
int i,d,ok = 1;
FILE *f1,*f2;
cout<<"\ntu tieng Anh can tra: ";gets(s1);
f1=fopen("ta.txt","r");
f2=fopen("tv.txt","r");
while (!feof(f1))
{
fgets(s3,100,f1);fgets(s2,100,f2);
if (sosanh(s3,s1) == 0)
{
cout<<"\nnghia cua tu :";puts(s2);ok = 0;
break;
}
}
if (ok == 1) cout<<"\nkhong tim thay tu trong co so du lieu";
fclose(f1);fclose(f2);
}
void main()
{
while (luachon != '3')
{
menu();getch();
}
}

genius
12-11-2005, 04:24 PM
nào các bác đâu rùi giúp em giải quyết vụ này đi

Hận Đời Không Đối Thủ
12-11-2005, 07:14 PM
mình chưa đọc qua VC++ tuy nhiên bằng ngắt màn hình và chuột của asemble bạn có thể nhúng vào chương trình.
Tài liệu tham khảo :kỹ thuật lập trình C của Gs Phạm Văn Ất
Nếu không nhầm bạn cũng có ý định làm bài tập lớn theo kiểu từ điển lưu vào csdl như của mình,nếu cần mình có thể gợi ý một số ý tưởng về chương trình

genius
12-11-2005, 07:21 PM
bạn ơi lưu cơ sở dữ lâu dài thì làm thế nào .tui thấy như bài trên thì khi ta tra xong và thoat khỏi chương trình thì nó không bao giờ lưa lại được và mình cũng hiểu là tại sao như vây rùi nhưng để lưu
bằng cách nào mới quan trọng .hoặc bạn có cách nào lưu bằng file không
bạn hãy lấy ví dụ trên để nêu ví dụ cho mình được không
nếu có code thì hay quá .mình đọc code thì có thể hiểu nhanh hơn .
thanks

genius
12-11-2005, 07:27 PM
à mình nhầm vẫn lưu được nhưng bạn hãy nói một cách cụ thế hơn và bạn có thế nói làm đồ họa nào cho đẹp được không?
nếu làm bài tập lớn thì thầy giáo bắt làm đồ họa đẩy
mong bạn giúp mình

Hận Đời Không Đối Thủ
12-11-2005, 07:38 PM
code bài VD bạn nêu trên chính là code bài từ điển mình nộp thầy,bài này dùng file để làm csdl nên khi tắt chương trình các từ mới nạp vẫn còn lưu.
Còn thuật toán thì không có gì vì chỉ là mở và thêm dòng vào file thôi
Còn về đồ họa mình cũng chưa bắt tay vào làm nên chưa thể có code
Về đồ họa của TC++ bạn có thể tham khảo ở chính quyển sách trên.

genius
12-11-2005, 08:43 PM
cho mình hỏi bạn làm về cái gì? bài tập lớn đó .mà bạn phải quản lý cscl

genius
12-11-2005, 09:44 PM
bạn có thế nói rõ về cách ngắt chuột đựoc không
và các lệnh ngắt trong ab được không và bạn có thế nói lên một số ý tưởng được không?
nếu được thì cảm ơn bạn rất nhiều

graphiks
13-11-2005, 08:20 AM
To Genuis: Nếu bạn muốn lập trình với các Nút ấn và các Scroll Bar thì ban học Lập trình Windows API .

Còn đây là Hướn dẫn về cách lập trình Mouse ,tui dùng Assembly inline trong Borland C va` sử dụng Interrupt 33h ,

chứ năng thứ nhất của int 33h
là khởi động chuột : hàm 0h
bạn viết như sau
asm{mov ax,0
int 33h
}

hiển thị con trỏ chuột hàm 01h
ám{mov ax,1
int 33h
}


che giấu con trỏ chuột 02h
asm {mov ax,2
int 33h
}

chức năng 03h: lấy trạng thsa1i nút ấn và Vị trí

asm{
mov ax,3
int 33h}

hàm nàyL giá trị tr3 về là BX chứa trạng thái chuột:
trong BX- bit 0: nếu là 0 có nghĩa là nút trái ko được ấn ,nếu là 1 thì có nghĩa là được ấn
Bit 1: tương tự như trên nhưng là thông tin dành cho nút phải
bit 2: tương tự và dành cho nút giữa

CX: tọa độ ngang
DX: tọa độ dọc

chức năng thiết lập vị trí chuột
04 h
input là Cx=toa độ ngang
Dx= toa độ dọc cuối cùng là int 33h

còn rất nhiều hàm nữa nhưng mà tui phải đi work out đây để mai mốt pót tiếp

Còn đây là Code minh họa ,trong này tui ko co xài tới Hide và show Mouse thực chất hàm 00 làm hết rồi ,mình chi cần lấy sự kiện của chuột thôi


#include <dos.h>
#include <stdio.h>
static int X,Y,BUTTON;

#include <conio.h>
#include <dos.h>
void Show();
void Hide();

void setmouse(int x,int y)
{
_DX=y;
_CX=x;
asm mov ax,4
asm int 33h
}
void Intalizemouse()
{
asm {mov ax,0
int 33h}

setmouse(0,0);
X=0,Y=0,BUTTON=0;
Show();
}


void Show()
{
asm{mov ax,1
int 33h}
}

void Hide()
{
asm{ mov ax,2
int 33h}
}

int State(int &Button,int &x,int &y)
{
asm{ mov ax,3
int 33h}
if(Button!=_BX||x!=_CX||y!=_DX)
{
Button=_BX ;x=_CX;y=_DX;
return 1;
}
return 0;
}

void main()
{
asm{mov ah,0
mov al,3
int 10h}
clrscr();
Intalizemouse();
while(!kbhit())
{
gotoxy(12,5);
printf("%d",X>>3);
gotoxy(12,6);
printf("%d",Y>>3);
while(!State(BUTTON,X,Y));
gotoxy(12,5);
printf(" ");
gotoxy(12,6);
printf(" ");

};
}

Incomplete
13-11-2005, 11:12 AM
Ặc, vấn đề ở đầu topic thì ko ai đả động, hình như ít người thành thạo VC hay sao ấy nhỉ, tui cũng đang mắc mớ phần chèn C++ code vào chương trình. Dùng TC và hợp ngữ để hiển thị chuột thì hơi bị phò vì phải bắt tọa độ chuột mỗi khi có phím bấm, rồi kiểm tra tọa độ ấy nằm trong nút bấm nào, nói chung là phiền toái, ko tự động như VC. Có bác nào rành VC ko ?????

huyền tịch đại sư
13-11-2005, 11:20 AM
VC thì bần tăng cũng không biết.Tuy nhiên bần tăng nghĩ dùng ngắt chuột như của thí chủ Graphik là được rồi

genius
13-11-2005, 11:32 AM
đúng rùi anh em mình phải tìm cách làm bằng vc chứa làm chương trình lớn như chương trình quản lý học sinh mà làm trên tc chán lắm .có bác nào thạo vc bày cho anh em

genius
13-11-2005, 03:38 PM
các bạn có bạn nào làm đươc menu của chưa trình quản lý cơ sở dữ liệu chưa (điều hiển bằng chuôt hoặc bằng nút lên xuống của phím cũng được ) bạn có thế post code cho mình được không?
thanks

h5n1
12-12-2005, 03:17 PM
này, mấy bác tìm được các chức năng của mấy hàm asm ở đâu vậy chỉ cho tui với!

h5n1
12-12-2005, 03:31 PM
Tui có tài liệu về VC++ 6.0 đây, bác nào rảnh down về coi thử (tiếng Việt):
http://www.freewebs.com/sptin0307/giaotrinhvisualc++.rar