對窗體編程
⑴ C# Windows編程 窗體編程 如何在一個窗體中對另一個窗體進行操作
1)修改RichtTextBox屬性,將Modifiers改為Public
privatevoidbutton1_Click(objectsender,EventArgse)
{
//至此,可以在Form2操作Form1中的RichTextBox控制項了。以下是示例
form1.richTextBox1.SelectAll();
form1.richTextBox1.SelectedText="aaaaaaaaaaaaa";
}
⑵ C++怎麼編寫窗體程序
1.MFC是在Visual C++裡面使用的.
2.除了MFC,還有其他庫可以做界面,如 C++ Builder.
3.MFC:主要學習其中類的使用。MSDN多查查就可以了。
4.Windows下可以用VS 2010,或經典的VC6.0。
MFC只是windows下的C++圖形界面編程,Qt則是主要是在linux下的C++圖形界面編程,windows下也可以。你要學習MFC的,看看孫鑫講VC,講得非常好,
MFC只是一個函數庫,並不是只有MFC才能做出帶界面的C++程序。學習MFC需要了解一門基礎的編程語言。比如C語言,或者C++等等。編程環境要視你面向的平台而定。比如你開發的程序是基於Windows的,那你當然就是在Windows下編程是最好的。
⑶ C++寫窗體程序
VB是基於快速開發環境,直接針對一個現給的窗體進行編程操作。實際上想要創建出一個具有圖形界面的窗體是很麻煩的,需要使用Windows API函數構造窗口類,注冊窗口,顯示、更新窗口,創建消息映射,接收消息循環等等很多步驟。
C++是比較底層化的編程語言,直接深入Windows應用程序的根本。圖形界面窗口都需要你自己利用API函數構建,不像VB那樣直接給你一個現成的窗口,把控制項拖上去擺好就行了。不過好在C++有完備且復雜高效的應用程序開發框架,即MFC(微軟基礎類庫)。MFC會幫你創建圖形界面,幫你完成消息映射,而你只需要注重你所要實現的功能就行了。
PS.你編寫的程序准確地說叫做Win32控制台應用程序,顧名思義,這種方式寫出來的程序是在DOS窗口環境下運行的,你可以打開cmd然後運行你寫的程序試試看。
用C++編寫圖形界面程序,有兩種方式,一種是Win32應用程序,另一種就是MFC應用程序了。具體的內容,等你掌握了良好的C++語言基礎,然後再學習<<Windows C++程序設計>>就知道了。
不要心急,先跟DOS窗口打一年左右的交道,把C++的語言基礎,面向對象編程都熟練運用並理解了,再接觸圖形界面程序開發,現在耐心學習C++基礎就可以了,初學不可浮躁。
⑷ VB編寫鍵盤按鍵程序對窗體
'如果用Msgbox來顯示事件發生,keypress事件會被忽略
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Print "KeyDown事件發生了,KeyCode的值是:" & KeyCode & " Shift參數的值是:" & Shift
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Print "KeyPress事件發生了,KeyAscii的值是:" & KeyAscii
End Sub
⑸ C#窗體編程中如何調用matlab庫函數
在matlab中建一個m文件(test.m)。例如:
function
test(h,D)
for
x=-10:0.1:10,
if
x>D
y=h;
hold
on;
plot(x,y)
elseif
x<-D
y=-h;
hold
on;
plot(x,y)
else
y=h/(D*x);
hold
on;
plot(x,y)
end
end
在MATLAB
R2007a中輸入deploytool命令(在matlab6.5中輸入comtool),打開Matlab
Build
For
.net窗口新建個工程,在此工程中「Add
files」即填加test.m這個文件,build即可生成COM組件,為test.dll,即為我們將在C#中引用的COM組件。
Build時matlab已經自動將此dll在注冊表中注冊
不過之前我們還需做一個准備工作,打開開始菜單「運行」,輸入regsvr32
"matlab安裝路徑\bin\win32\mwcomutil.dll",即對mwcomutil.dll進行注冊(這個dll是matlab下作的任何com組件都要用到的dll),下面我們在其他編譯器下調用時就可以用了。
2,下面即可在C#中調用dll文件:
"引用"右擊,選擇瀏覽,找到test.dll,添加。
"引用"右擊,選擇瀏覽,找到MWArray.dll(matlab安裝路徑\toolbox\dotnetbuilder\bin\win32\v2.0\MWArray.dll),添加。
再寫入以下代碼:
test.testclass
st
=
new
test.testclass();
MathWorks.MATLAB.NET.Arrays.MWArray
m
=
1,
n
=
2;
st.test(m,n);
⑹ C#winform窗體編程
可以用一個panel 裡面裝一個textbox,dock屬性改為fill,scollbars屬性改為vertical,在某一個控制項的mouse_enter事件和mouse_leave事件裡面修改panel的visible,可以實現,但是位置是固定的,應該可以改變位置,試試吧
⑺ c#中windows窗體編程
在Winform中的列印主要可以通過三種方式來實現:一種是使用Winform提供的類,另一種是使用控制項,還有一種就是利用水晶報表的列印。
列印控制項主要優勢是方便快捷,一般應用於簡單、固定、單調的模板列印,其主要常用控制項有:
(1) PrintDocument:是一個可用於設置屬性來描述有關列印的信息,並且可用於調用方法Print()或通過事件PrintPage來列印文檔的組件。
(2) PrintDialog:允許用戶選擇列印機並指定文檔中要列印的部分。
(3) PrintPreviewDialog:此控制項是一個列印預覽對話框,用於顯示文檔的列印效果。該控制項包含用於列印、放大、顯示一頁或多頁以及關閉對話框的按鈕。
(4) PageSetupDialog:主要用來設置頁面大小,頁邊距等。
------------------------------------------------------
建個winform工程,拖如上四個控制項,再拖三個按鈕
public Form1()
{
InitializeComponent();
this.printDialog1.Document = this.printDocument1;//必要的
this.printPreviewDialog1.Document = this.printDocument1;
this.pageSetupDialog1.Document = this.printDocument1;
}
private void button3_Click(object sender, EventArgs e)
{//列印
if (this.printDialog1.ShowDialog() == DialogResult.OK)
this.printDocument1.Print();
}
private void button1_Click(object sender, EventArgs e)
{//列印預覽
this.printPreviewDialog1.ShowDialog();
}
private void button2_Click(object sender, EventArgs e)
{//列印設置
this.pageSetupDialog1.ShowDialog();
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{//雙擊printDocument控制項,這才是真正開始幹活的,在這裡面寫你想要列印信息
Font font = new Font("Tahoma", 12, FontStyle.Underline);//設置畫筆
Brush bru = Brushes.Blue;
Pen pen = new Pen(bru);
pen.Width = 5;
//設置各邊距
int nLeft = this.pageSetupDialog1.PageSettings.Margins.Left;
int nTop = this.pageSetupDialog1.PageSettings.Margins.Top;
int nRight = this.pageSetupDialog1.PageSettings.Margins.Right;
int nBottom = this.pageSetupDialog1.PageSettings.Margins.Bottom;
int nWidth = this.pageSetupDialog1.PageSettings.PaperSize.Width-nRight-nLeft;
int nHeight = this.pageSetupDialog1.PageSettings.PaperSize.Height-nTop-nBottom;
//列印各邊距
e.Graphics.DrawLine(pen, nLeft, nTop, nLeft, nTop + nHeight);
e.Graphics.DrawLine(pen, nLeft+nWidth, nTop, nLeft+nWidth, nTop + nHeight);
e.Graphics.DrawLine(pen, nLeft, nTop, nLeft+nWidth, nTop);
e.Graphics.DrawLine(pen, nLeft, nTop+nHeight, nLeft + nWidth, nTop+nHeight);
//在離左邊距20,右邊距20的位置列印haha xixi
e.Graphics.DrawString("haha xixi", font, bru, nLeft+20, nTop+20);//如果要列印datagridView在這里遍歷便可
}
但是如果想列印一張表的數據,我建義你使用水晶報表,這樣就方便得多.
水晶報表(Crystal Report)是業內最專業、功能最強的報表系統,它除了強大的報表功能外,最大的優勢是實現了與絕大多數流行開發工具的集成和介面。在VS.Net平台 做過報表開發的程序員,一定都對水晶報表強大、高效、集成等特性留下了深刻印象。除了開發新程序外,在工作中我們常需要接觸到很多較早的軟體系統報表功能升級的需求,如果能結合水晶報表這一強大的工具,往往能事半功倍。
因為有些列印效果需要分類匯總、規范的頁面格式、預覽等,而水晶報表都能方便高效的實現。如列印葯品入庫清單,需要用到表格的樣式,且對總消費求和;處方箋的列印也需要繪制規范的格式,同時還可以利用自帶的公式進行相應的數據加工。
其實現過程:首先建立一個DataSet.xsd文件,在上面創建需要的Table模板,table中的列都將是水晶報表要用到的;其次通過報表專家進行水晶報表的創建,包括需要顯示的欄位,需要匯總求和的數據,基本樣式等都可逐步實現,完成後也可做相應的樣式和數據修改;最後把資料庫里的數據查詢出來,賦給水晶報表數據源,通過CrystalReportView控制項展示給用戶。通過自帶的列印,導出等工具,可以方便的進行操作。
⑻ 怎樣用C++編寫窗體應用程序
用語言開發想要的東西。
很簡單啊,windows
就加個
windows.h
其他平台的就加他們的
api
函數
頭文件。
再找他們的幫助文檔。
其他平台我就沒碰過,不過windows
創建窗口
要創建窗口類型。不是c++拿著那個類
注冊窗口類型。
創建窗口,顯示窗口,更新窗口。每個都是函數實現。
要簡單就直接用mfc
,控制台程序好像能使用mfc,
⑼ 如何用C語言開發窗體應用程序。。
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
#include <windows.h>
//Function prototype.
int WINAPI WinMain(HINSTANCE,HINSTANCE ,LPSTR ,int);
LRESULT CALLBACK MainWndProc(HWND ,UINT ,WPARAM,LPARAM);
InitApplication(HINSTANCE);
InitInstance(HINSTANCE,int);
LRESULT CALLBACK MainWndProc(HWND hwnd,UINT nMsg,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(nMsg)
{
case WM_COMMAND:
{
hdc = GetDC((HWND)lParam);
GetClientRect ((HWND)lParam, &rect) ;
DrawText(hdc,"HOHO",-1,&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
ReleaseDC((HWND)lParam,hdc);
}
break;
case WM_PAINT:
{
hdc = BeginPaint(hwnd,&ps);
GetClientRect (hwnd, &rect) ;
DrawText(hdc,"Hello Word",-1,&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd,&ps);
}
break;
//按鍵
case WM_KEYDOWN:
if(wParam == VK_ESCAPE)
SendMessage(hwnd,WM_CLOSE,0,0);
break;
case WM_CHAR:
switch(wParam)
{
case 'w':
MessageBox(hwnd,"UP","KeyBorad Input",MB_OK);
break;
case 's':
MessageBox(hwnd,"DOWN","KeyBorad Input",MB_OK);
break;
case 'a':
MessageBox(hwnd,"LEFT","KeyBorad Input",MB_OK);
break;
case 'd':
MessageBox(hwnd,"RIGHT","KeyBorad Input",MB_OK);
break;
}
break;
//關閉
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,nMsg,wParam,lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInStance,
LPSTR lpCmdLine,int nCmdShow)
{
MSG msg;
if(!InitApplication(hInstance))
{
MessageBox(NULL,"InitApplication Failed","Error!",MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}
if(!InitInstance(hInstance,nCmdShow)){
MessageBox(NULL,"InitInstance Failed","Error!",MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}
while(GetMessage(&msg,(HWND) NULL,0,0)>0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
InitApplication(HINSTANCE hInstance)
{
WNDCLASS wc;
wc.style = CS_DBLCLKS;
wc.lpfnWndProc = MainWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = "MainWClass";
return RegisterClass(&wc);
}
InitInstance(HINSTANCE hInstance,int nCmdShow){
HWND hwnd;
HWND hwndCloseButton;
hwnd = CreateWindow(
"MainWClass",
"Sample",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
(HWND)NULL,
(HMENU)NULL,
hInstance,
(LPVOID)NULL);
if(!hwnd)
return FALSE;
hwndCloseButton = CreateWindow(
"BUTTON",
"CLOSE",
WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
100,
100,
100,
80,
hwnd,
(HMENU)NULL,
hInstance,
(LPVOID)NULL);
if(!hwndCloseButton)
return FALSE;
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
return TRUE;
}