473,387 Members | 1,347 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

How to make bitblt work

I am trying to use GDI32 bitblt to write a bitmap to a control's window, but all I get is an empty rectangle of some rop-dependent color. In short, I use the following logic in a paint event handler:

dstGr = args.graphics;
srcGr = Graphics.FromImage( bitmap );
dstHdc = dstGr.GetHdc();
srcHdc = srcGr.GetHdc();
BitBlt( dstHdc, x, y, width, height, srcHdc, 0, 0, rop );

What am I doing wrong? A complete demo program follows.

Thanks,
Jack

------------------------------------------------------
// Draw a bitmap using System.Drawing.Graphics, then draw the same bitmap
// using BitBlt. The BitBlt operation produces a black rectangle.
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace BitBltTest
{
public class BitBltTest : System.Windows.Forms.Form
{
public BitBltTest()
{
this.Width = 200;
this.Height = 200;
this.BackColor = Color.White;
this.Paint += new PaintEventHandler( PaintEH );

bitmap_ = new Bitmap( 40, 40 );
Pen pen = new Pen( Color.Black, 1 );
Graphics graph = Graphics.FromImage( bitmap_ );
graph.Clear( Color.White );
graph.DrawRectangle( pen, 5, 5, 30, 30 );
graph.DrawLine( pen, 5, 5, 35, 35 );
graph.DrawLine( pen, 5, 35, 35, 5 );
pen.Dispose();
graph.Dispose();
}

private void PaintEH( Object sender, PaintEventArgs args )
{
Graphics dstGr = args.Graphics;
Graphics srcGr = Graphics.FromImage( bitmap_ );
Int32 width = bitmap_.Width;
Int32 height = bitmap_.Height;

dstGr.DrawImage( bitmap_, 50, 50, width, height );

IntPtr dstHdc = dstGr.GetHdc();
IntPtr srcHdc = srcGr.GetHdc();
SetDCBrushColor( srcHdc, WHITE );
bool bitBltResult =
BitBlt(
dstHdc,
50 + width + 25,
50,
width,
height,
srcHdc,
0,
0,
SRCCOPY
);
if ( !bitBltResult )
throw new Exception( "BitBlt Failure" );

srcGr.ReleaseHdc( srcHdc );
dstGr.ReleaseHdc( dstHdc );
srcGr.Dispose();
}

private Bitmap bitmap_;

[DllImport("gdi32.DLL")]
private static extern Boolean
BitBlt(
IntPtr hdcDest,
Int32 nXDest,
Int32 nYDest,
Int32 nWidth,
Int32 nHeight,
IntPtr hdcSrc,
Int32 nXSrc,
Int32 nYSrc,
UInt32 dwRop
);

private const UInt32 SRCCOPY = 0x00CC0020;

[STAThread]
static void Main()
{
BitBltTest form = new BitBltTest();
Application.Run( form );
}
}
}

Nov 16 '05 #1
5 16952
I wouldn't recommend BitBlt. You should Graphics.DrawImage instead. BitBlt
is not supported on WindowsCE. Additionally BitBlt supports not the richt
features that DrawImage can do such as rotating scaling and filtering of
images. I do not believe that BitBlt is much faster than DrawImage.
If you really need extremely fast ImageBliting, maybe you have a look at
managed DirectX.

--
cody

[Freeware, Games and Humor]
www.deutronium.de.vu || www.deutronium.tk
"JackS" <Ja***@discussions.microsoft.com> schrieb im Newsbeitrag
news:90**********************************@microsof t.com...
I am trying to use GDI32 bitblt to write a bitmap to a control's window, but all I get is an empty rectangle of some rop-dependent color. In short, I
use the following logic in a paint event handler:
dstGr = args.graphics;
srcGr = Graphics.FromImage( bitmap );
dstHdc = dstGr.GetHdc();
srcHdc = srcGr.GetHdc();
BitBlt( dstHdc, x, y, width, height, srcHdc, 0, 0, rop );

What am I doing wrong? A complete demo program follows.

Thanks,
Jack

------------------------------------------------------
// Draw a bitmap using System.Drawing.Graphics, then draw the same bitmap
// using BitBlt. The BitBlt operation produces a black rectangle.
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace BitBltTest
{
public class BitBltTest : System.Windows.Forms.Form
{
public BitBltTest()
{
this.Width = 200;
this.Height = 200;
this.BackColor = Color.White;
this.Paint += new PaintEventHandler( PaintEH );

bitmap_ = new Bitmap( 40, 40 );
Pen pen = new Pen( Color.Black, 1 );
Graphics graph = Graphics.FromImage( bitmap_ );
graph.Clear( Color.White );
graph.DrawRectangle( pen, 5, 5, 30, 30 );
graph.DrawLine( pen, 5, 5, 35, 35 );
graph.DrawLine( pen, 5, 35, 35, 5 );
pen.Dispose();
graph.Dispose();
}

private void PaintEH( Object sender, PaintEventArgs args )
{
Graphics dstGr = args.Graphics;
Graphics srcGr = Graphics.FromImage( bitmap_ );
Int32 width = bitmap_.Width;
Int32 height = bitmap_.Height;

dstGr.DrawImage( bitmap_, 50, 50, width, height );

IntPtr dstHdc = dstGr.GetHdc();
IntPtr srcHdc = srcGr.GetHdc();
SetDCBrushColor( srcHdc, WHITE );
bool bitBltResult =
BitBlt(
dstHdc,
50 + width + 25,
50,
width,
height,
srcHdc,
0,
0,
SRCCOPY
);
if ( !bitBltResult )
throw new Exception( "BitBlt Failure" );

srcGr.ReleaseHdc( srcHdc );
dstGr.ReleaseHdc( dstHdc );
srcGr.Dispose();
}

private Bitmap bitmap_;

[DllImport("gdi32.DLL")]
private static extern Boolean
BitBlt(
IntPtr hdcDest,
Int32 nXDest,
Int32 nYDest,
Int32 nWidth,
Int32 nHeight,
IntPtr hdcSrc,
Int32 nXSrc,
Int32 nYSrc,
UInt32 dwRop
);

private const UInt32 SRCCOPY = 0x00CC0020;

[STAThread]
static void Main()
{
BitBltTest form = new BitBltTest();
Application.Run( form );
}
}
}

Nov 16 '05 #2
Hi JackS,

I am not sure what you want to see.

Is this what you wanted (as your code has bugs, but i had fix it)?
In your codes, you just draw this and that.

(please open a new browser and paste this url)

http://www.geocities.com/chuawenching/JackS.JPG

Codes:

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace BitBltTest
{
public class BitBltTest : System.Windows.Forms.Form
{
public BitBltTest()
{
this.Width = 200;
this.Height = 200;
this.BackColor = Color.White;
this.Paint += new PaintEventHandler( PaintEH );

bitmap_ = new Bitmap( 40, 40 );
Pen pen = new Pen( Color.Black, 1 );
Graphics graph = Graphics.FromImage( bitmap_ );
graph.Clear( Color.White );
graph.DrawRectangle( pen, 5, 5, 30, 30 );
graph.DrawLine( pen, 5, 5, 35, 35 );
graph.DrawLine( pen, 5, 35, 35, 5 );
pen.Dispose();
graph.Dispose();
}

private void PaintEH( Object sender, PaintEventArgs args )
{
Image imageFile = Image.FromFile("test.jpg");
Graphics newGraphics = Graphics.FromImage(imageFile);
newGraphics.FillRectangle(new SolidBrush(Color.Black), 100, 50, 100, 100);
args.Graphics.DrawImage(imageFile, new PointF(0.0F, 0.0F));
newGraphics.Dispose();

Graphics dstGr = args.Graphics;
Graphics srcGr = Graphics.FromImage( bitmap_ );
Int32 width = bitmap_.Width;
Int32 height = bitmap_.Height;

dstGr.DrawImage( bitmap_, 50, 50, width, height );

IntPtr dstHdc = dstGr.GetHdc();
IntPtr srcHdc = srcGr.GetHdc();
SetDCBrushColor( srcHdc, 0 );
bool bitBltResult =
BitBlt(
dstHdc,
50 + width + 25,
50,
width,
height,
srcHdc,
0,
0,
SRCCOPY
);
if ( !bitBltResult )
throw new Exception( "BitBlt Failure" );

srcGr.ReleaseHdc( srcHdc );
dstGr.ReleaseHdc( dstHdc );
srcGr.Dispose();
}

[DllImport("gdi32.dll")]
static extern uint SetDCBrushColor(IntPtr hdc, uint crColor);

private Bitmap bitmap_;

[DllImport("gdi32.DLL")]
private static extern Boolean
BitBlt(
IntPtr hdcDest,
Int32 nXDest,
Int32 nYDest,
Int32 nWidth,
Int32 nHeight,
IntPtr hdcSrc,
Int32 nXSrc,
Int32 nYSrc,
UInt32 dwRop
);

private const UInt32 SRCCOPY = 0x00CC0020;

[STAThread]
static void Main()
{
BitBltTest form = new BitBltTest();
Application.Run( form );
}
}
}

Hope it helps. Correct me if i am wrong.

Thanks.
--
Regards,
Chua Wen Ching :)
"JackS" wrote:
I am trying to use GDI32 bitblt to write a bitmap to a control's window, but all I get is an empty rectangle of some rop-dependent color. In short, I use the following logic in a paint event handler:

dstGr = args.graphics;
srcGr = Graphics.FromImage( bitmap );
dstHdc = dstGr.GetHdc();
srcHdc = srcGr.GetHdc();
BitBlt( dstHdc, x, y, width, height, srcHdc, 0, 0, rop );

What am I doing wrong? A complete demo program follows.

Thanks,
Jack

------------------------------------------------------
// Draw a bitmap using System.Drawing.Graphics, then draw the same bitmap
// using BitBlt. The BitBlt operation produces a black rectangle.
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace BitBltTest
{
public class BitBltTest : System.Windows.Forms.Form
{
public BitBltTest()
{
this.Width = 200;
this.Height = 200;
this.BackColor = Color.White;
this.Paint += new PaintEventHandler( PaintEH );

bitmap_ = new Bitmap( 40, 40 );
Pen pen = new Pen( Color.Black, 1 );
Graphics graph = Graphics.FromImage( bitmap_ );
graph.Clear( Color.White );
graph.DrawRectangle( pen, 5, 5, 30, 30 );
graph.DrawLine( pen, 5, 5, 35, 35 );
graph.DrawLine( pen, 5, 35, 35, 5 );
pen.Dispose();
graph.Dispose();
}

private void PaintEH( Object sender, PaintEventArgs args )
{
Graphics dstGr = args.Graphics;
Graphics srcGr = Graphics.FromImage( bitmap_ );
Int32 width = bitmap_.Width;
Int32 height = bitmap_.Height;

dstGr.DrawImage( bitmap_, 50, 50, width, height );

IntPtr dstHdc = dstGr.GetHdc();
IntPtr srcHdc = srcGr.GetHdc();
SetDCBrushColor( srcHdc, WHITE );
bool bitBltResult =
BitBlt(
dstHdc,
50 + width + 25,
50,
width,
height,
srcHdc,
0,
0,
SRCCOPY
);
if ( !bitBltResult )
throw new Exception( "BitBlt Failure" );

srcGr.ReleaseHdc( srcHdc );
dstGr.ReleaseHdc( dstHdc );
srcGr.Dispose();
}

private Bitmap bitmap_;

[DllImport("gdi32.DLL")]
private static extern Boolean
BitBlt(
IntPtr hdcDest,
Int32 nXDest,
Int32 nYDest,
Int32 nWidth,
Int32 nHeight,
IntPtr hdcSrc,
Int32 nXSrc,
Int32 nYSrc,
UInt32 dwRop
);

private const UInt32 SRCCOPY = 0x00CC0020;

[STAThread]
static void Main()
{
BitBltTest form = new BitBltTest();
Application.Run( form );
}
}
}

Nov 16 '05 #3
Thanks, but I need to be able to set the ROP, and as far as I know you can't do that with Graphics.DrawImage.

"cody" wrote:
I wouldn't recommend BitBlt. You should Graphics.DrawImage instead. BitBlt
is not supported on WindowsCE. Additionally BitBlt supports not the richt
features that DrawImage can do such as rotating scaling and filtering of
images. I do not believe that BitBlt is much faster than DrawImage.
If you really need extremely fast ImageBliting, maybe you have a look at
managed DirectX.

--
cody

[Freeware, Games and Humor]
www.deutronium.de.vu || www.deutronium.tk
"JackS" <Ja***@discussions.microsoft.com> schrieb im Newsbeitrag
news:90**********************************@microsof t.com...
I am trying to use GDI32 bitblt to write a bitmap to a control's window,

but all I get is an empty rectangle of some rop-dependent color. In short, I
use the following logic in a paint event handler:

dstGr = args.graphics;
srcGr = Graphics.FromImage( bitmap );
dstHdc = dstGr.GetHdc();
srcHdc = srcGr.GetHdc();
BitBlt( dstHdc, x, y, width, height, srcHdc, 0, 0, rop );

What am I doing wrong? A complete demo program follows.

Thanks,
Jack

------------------------------------------------------
// Draw a bitmap using System.Drawing.Graphics, then draw the same bitmap
// using BitBlt. The BitBlt operation produces a black rectangle.
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace BitBltTest
{
public class BitBltTest : System.Windows.Forms.Form
{
public BitBltTest()
{
this.Width = 200;
this.Height = 200;
this.BackColor = Color.White;
this.Paint += new PaintEventHandler( PaintEH );

bitmap_ = new Bitmap( 40, 40 );
Pen pen = new Pen( Color.Black, 1 );
Graphics graph = Graphics.FromImage( bitmap_ );
graph.Clear( Color.White );
graph.DrawRectangle( pen, 5, 5, 30, 30 );
graph.DrawLine( pen, 5, 5, 35, 35 );
graph.DrawLine( pen, 5, 35, 35, 5 );
pen.Dispose();
graph.Dispose();
}

private void PaintEH( Object sender, PaintEventArgs args )
{
Graphics dstGr = args.Graphics;
Graphics srcGr = Graphics.FromImage( bitmap_ );
Int32 width = bitmap_.Width;
Int32 height = bitmap_.Height;

dstGr.DrawImage( bitmap_, 50, 50, width, height );

IntPtr dstHdc = dstGr.GetHdc();
IntPtr srcHdc = srcGr.GetHdc();
SetDCBrushColor( srcHdc, WHITE );
bool bitBltResult =
BitBlt(
dstHdc,
50 + width + 25,
50,
width,
height,
srcHdc,
0,
0,
SRCCOPY
);
if ( !bitBltResult )
throw new Exception( "BitBlt Failure" );

srcGr.ReleaseHdc( srcHdc );
dstGr.ReleaseHdc( dstHdc );
srcGr.Dispose();
}

private Bitmap bitmap_;

[DllImport("gdi32.DLL")]
private static extern Boolean
BitBlt(
IntPtr hdcDest,
Int32 nXDest,
Int32 nYDest,
Int32 nWidth,
Int32 nHeight,
IntPtr hdcSrc,
Int32 nXSrc,
Int32 nYSrc,
UInt32 dwRop
);

private const UInt32 SRCCOPY = 0x00CC0020;

[STAThread]
static void Main()
{
BitBltTest form = new BitBltTest();
Application.Run( form );
}
}
}


Nov 16 '05 #4
"Chua Wen Ching" wrote:
Hi JackS,

I am not sure what you want to see.

Is this what you wanted (as your code has bugs, but i had fix it)?

.. . .

Hmmm... I did manage to drop a bug in there didn't I? I assume you refer to the experimental call to SetDCBrushColor. That line should simply be deleted. The background image you added to the window hides the problem I am trying to demonstrate: Graphics.DrawImage draws the test image correctly, but the same image drawn with BitBlt comes out as a black rectangle. Complete corrected code follows.

Thanks,
Jack

// Draw a bitmap using System.Drawing.Graphics, then draw the same bitmap
// using BitBlt. The BitBlt operation produces a black rectangle.
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace BitBltTest
{
public class BitBltTest : System.Windows.Forms.Form
{
public BitBltTest()
{
this.Width = 200;
this.Height = 200;
this.BackColor = Color.White;
this.Paint += new PaintEventHandler( PaintEH );

bitmap_ = new Bitmap( 40, 40 );
Pen pen = new Pen( Color.Black, 1 );
Graphics graph = Graphics.FromImage( bitmap_ );
graph.Clear( Color.White );
graph.DrawRectangle( pen, 5, 5, 30, 30 );
graph.DrawLine( pen, 5, 5, 35, 35 );
graph.DrawLine( pen, 5, 35, 35, 5 );
pen.Dispose();
graph.Dispose();
}

private void PaintEH( Object sender, PaintEventArgs args )
{
Graphics dstGr = args.Graphics;
Graphics srcGr = Graphics.FromImage( bitmap_ );
Int32 width = bitmap_.Width;
Int32 height = bitmap_.Height;

dstGr.DrawImage( bitmap_, 50, 50, width, height );

IntPtr dstHdc = dstGr.GetHdc();
IntPtr srcHdc = srcGr.GetHdc();
bool bitBltResult =
BitBlt(
dstHdc,
50 + width + 25,
50,
width,
height,
srcHdc,
0,
0,
SRCCOPY
);
if ( !bitBltResult )
throw new Exception( "BitBlt Failure" );

srcGr.ReleaseHdc( srcHdc );
dstGr.ReleaseHdc( dstHdc );
srcGr.Dispose();
}

private Bitmap bitmap_;

[DllImport("gdi32.DLL")]
private static extern Boolean
BitBlt(
IntPtr hdcDest,
Int32 nXDest,
Int32 nYDest,
Int32 nWidth,
Int32 nHeight,
IntPtr hdcSrc,
Int32 nXSrc,
Int32 nYSrc,
UInt32 dwRop
);

private const UInt32 SRCCOPY = 0x00CC0020;

[STAThread]
static void Main()
{
BitBltTest form = new BitBltTest();
Application.Run( form );
}
}
}

Nov 16 '05 #5
*** Correction to original post.
I am trying to use GDI32 bitblt to write a bitmap to a control's window, but all I get is an empty rectangle of some rop-dependent color. In short, I use the following logic in a paint event handler:

dstGr = args.graphics;
srcGr = Graphics.FromImage( bitmap );
dstHdc = dstGr.GetHdc();
srcHdc = srcGr.GetHdc();
BitBlt( dstHdc, x, y, width, height, srcHdc, 0, 0, rop );

What am I doing wrong? A complete demo program follows.


My original post contained a sample program with a bug; the corrected code follows. The program draws an image with Graphics.DrawImage, then draws the same image with BitBlt. DrawImage displays correctly, but BitBlt just draws a black rectangle.

Jack

----------------------------------------

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace BitBltTest
{
public class BitBltTest : System.Windows.Forms.Form
{
public BitBltTest()
{
this.Width = 200;
this.Height = 200;
this.BackColor = Color.White;
this.Paint += new PaintEventHandler( PaintEH );

bitmap_ = new Bitmap( 40, 40 );
Pen pen = new Pen( Color.Black, 1 );
Graphics graph = Graphics.FromImage( bitmap_ );
graph.Clear( Color.White );
graph.DrawRectangle( pen, 5, 5, 30, 30 );
graph.DrawLine( pen, 5, 5, 35, 35 );
graph.DrawLine( pen, 5, 35, 35, 5 );
pen.Dispose();
graph.Dispose();
}

private void PaintEH( Object sender, PaintEventArgs args )
{
Graphics dstGr = args.Graphics;
Graphics srcGr = Graphics.FromImage( bitmap_ );
Int32 width = bitmap_.Width;
Int32 height = bitmap_.Height;

dstGr.DrawImage( bitmap_, 50, 50, width, height );

IntPtr dstHdc = dstGr.GetHdc();
IntPtr srcHdc = srcGr.GetHdc();
bool bitBltResult =
BitBlt(
dstHdc,
50 + width + 25,
50,
width,
height,
srcHdc,
0,
0,
SRCCOPY
);
if ( !bitBltResult )
throw new Exception( "BitBlt Failure" );

srcGr.ReleaseHdc( srcHdc );
dstGr.ReleaseHdc( dstHdc );
srcGr.Dispose();
}

private Bitmap bitmap_;

[DllImport("gdi32.DLL")]
private static extern Boolean
BitBlt(
IntPtr hdcDest,
Int32 nXDest,
Int32 nYDest,
Int32 nWidth,
Int32 nHeight,
IntPtr hdcSrc,
Int32 nXSrc,
Int32 nYSrc,
UInt32 dwRop
);

private const UInt32 SRCCOPY = 0x00CC0020;

[STAThread]
static void Main()
{
BitBltTest form = new BitBltTest();
Application.Run( form );
}
}
}

Nov 16 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: DraguVaso | last post by:
Hi, In the override of the Paint-method of a DataGridTextBoxColumn I want to show an image with BitBlt, to see what I can gain there on performance. The problem is: It doesn't show me the image...
9
by: Rajat Tandon | last post by:
Hello there, I am relatively new to the newsgroups and C#. I have never been disappointed with the groups and always got the prompt replies to my queries.This is yet another strange issue, I am...
5
by: _R | last post by:
I need to establish a canvas for sorts, for painting primarily single line pictures. Lines and images are currently drawn into raw graphics space which is derived from a control, using LockBits. ...
6
by: Larry Serflaten | last post by:
Can anyone see something wrong with the code below? Friend Sub MapUpdate(ByRef Artwork As Bitmap, ByRef Player As MapObject) If grxForm Is Nothing Then grxForm = Me.CreateGraphics Dim hdcDst...
3
by: fripper | last post by:
Is there a way to use the windows bitblt function in a VB 2005 app? bitblt requires device context parameters for the source and destination controls but those are not used in VB 2005. Is there...
7
by: Galen Somerville | last post by:
I'm doing something wrong. I made up a test app and put the ZIP file on my website http://home.surewest.net/galen/index.html under Downloads. Basically I have a Panel that will get continuous...
6
by: Martijn Mulder | last post by:
/* BitBlt.cs C# code using P/Invoke I have good reasons to use P/Invoke to get access to the Win32 API function BitBlt(). But I have trouble understanding the workings of it. Below is a...
5
by: =?Utf-8?B?UmljYXJkbyBGdXJ0YWRv?= | last post by:
I'm trying to copy a part of an image (a rectangle) width the bitblt api function, bu i receive an error when i try to do it. The error is the following, that i will try to translate because its in...
1
by: DumRat | last post by:
Hi, Can anyone plz help? I have the following code for the WM_PAINT event, but it doesn't work. Need to knw why. I'm drawing the scene to the window, but am using an intermediate DC....
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.