C# WinForm如何获取窗口最大可实际显示的宽高 比如1600*900的屏幕,最大化时窗口

C# WinForm如何获取窗口最大可实际显示的宽高 比如1600*900的屏幕,最大化时窗口,第1张

最大化的语句

thisWindowState = FormWindowStateMaximized;

然后就可以

thisWidth

thisHeight

用下面的这个语句可以得到主屏幕的宽

int wid= ScreenPrimaryScreenWorkingAreaWidth;

高:

int hei = ScreenPrimaryScreenWorkingAreaHeight;

分辨率只适用于全屏模式下。

窗口模式下是根据整个桌面的分辨率来设置的,窗口不可能设置整个桌面的分辨率。因为窗口是在桌面之下的,就像你在纸上画个框,这个框是由纸限制了最大值了,你不可能把框画得比纸还大吧

'使用DIB获取图象,根据他人代码修改,ImgData()中保存的是颜色

Private Declare Function GetDIBits Lib "gdi32" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long

Private Declare Function SetDIBits Lib "gdi32" (ByVal hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long

Private Type BITMAPINFOHEADER '40 bytes

biSize As Long

biWidth As Long

biHeight As Long

biPlanes As Integer

biBitCount As Integer

biCompression As Long

biSizeImage As Long

biXPelsPerMeter As Long

biYPelsPerMeter As Long

biClrUsed As Long

biClrImportant As Long

End Type

Private Type RGBQUAD

rgbBlue As Byte

rgbGreen As Byte

rgbRed As Byte

rgbReserved As Byte

End Type

Private Type BITMAPINFO

bmiHeader As BITMAPINFOHEADER

bmiColors As RGBQUAD

End Type

Private Const DIB_RGB_COLORS = 0 ' color table in RGBs

Private Sub Command1_Click()

Picture1Line (0, 0)-(Picture1Width, Picture1Height), vbRed

Dim BITMAP As BITMAPINFO

Dim ImgData() As Byte'图象颜色

Dim lIndex As Long

Dim i As Long, j As Long, n As Long, t As Long, m

With BITMAP

bmiHeaderbiSize = 40 'BMP30版本

End With

If GetDIBits(Picture1hdc, Picture1PictureHandle, 0, 0, 0, BITMAP, DIB_RGB_COLORS) <> 0 Then '获取图像位图数据大小

ReDim ImgData(BITMAPbmiHeaderbiSizeImage - 1) '重定义数组准备接收位图数据

If GetDIBits(Picture1hdc, Picture1PictureHandle, 0, BITMAPbmiHeaderbiHeight, ImgData(0), BITMAP, DIB_RGB_COLORS) <> 0 Then '正式获取位图数据并将数据存入定义的数组中

'注意数组中颜色分量的存储顺序为:B、G、R(并不是R、G、B),如果你需要对图像进行处理只需改变数组中的数据即可完成

'我试验的位图62x62像素,24色图,3字节存储,每行188字节(一个扫描行的长度必须是4的倍数),这样扫描后共11656字节

' 下面这段程序是将图像亮度变暗(只作为演示,其它效果你可以自己动手做)

'注意:第一条扫描线的位置是从左下角开始

'BITMAPbmiHeaderbiHeight 位图的高度,单位是像素

'BITMAPbmiHeaderbiWidth 位图的宽度,单位是像素

'BITMAPbmiHeaderbiBitCount 图像的颜色位数

'每个像素点的颜色是:(从下往上)

t = ((BITMAPbmiHeaderbiWidth 3 + 3) \ 4) 4 '每行的字节数

For i = 1 To BITMAPbmiHeaderbiHeight

DoEvents

m = t (i - 1)

For j = 1 To BITMAPbmiHeaderbiWidth

n = m + (j - 1) 3

DebugPrint "(" & i & "," & j & ")" & n & ": R=" & ImgData(n) & " G=" & ImgData(n + 1) & " B=" & ImgData(n + 2)

Next

Next

For lIndex = 0 To BITMAPbmiHeaderbiSizeImage - 1

DoEvents

If ImgData(lIndex) - 100 < 0 Then

ImgData(lIndex) = 0

Else

ImgData(lIndex) = ImgData(lIndex) - 100

End If

Next

'

SetDIBits Picture2hdc, Picture2ImageHandle, 0, BITMAPbmiHeaderbiHeight - 1, ImgData(0), BITMAP, DIB_RGB_COLORS '将位图数据写入PICTURE2中

End If

End If

End Sub

matlab获取整幅图像的像素值的方法:用imread函数,输入M=imread('d:\10JPG');即可。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

扩展资料:

MATLAB的相关要求规定:

1、MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。

2、Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。

3、MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。

参考资料来源:百度百科-MATLAB

以上就是关于C# WinForm如何获取窗口最大可实际显示的宽高 比如1600*900的屏幕,最大化时窗口全部的内容,包括:C# WinForm如何获取窗口最大可实际显示的宽高 比如1600*900的屏幕,最大化时窗口、为什么我窗口模式的分辨率没有的呀config的问题、vb编程 获取图片全面像素颜色信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9659059.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存